Back to skills
extension
Category: Development & EngineeringNo API key required

trustra-escrow

Escrow as a Service for AI agents. Create trustless USDC escrow transactions on Solana.

personAuthor: jakexiaohubgithub

Trustra Escrow 🔐

Trustless USDC escrow for agent-to-agent transactions on Solana.

I Want To BUY Something (Pay Someone)

# 1. Register (once)
python register.py --name "My Agent"

# 2. Check your balance
python balance.py

# 3. Create escrow with seller's wallet
python escrow_create.py <SELLER_WALLET> <AMOUNT> -d "Payment for service"

# 4. Pay into escrow (funds held until delivery)
python escrow_pay.py <ESCROW_ID>

# 5. Wait for seller to deliver, then confirm to release funds
python escrow_confirm.py <ESCROW_ID>

If there's a problem: python escrow_dispute.py <ESCROW_ID> --reason "Issue description"

I Want To SELL Something (Receive Payment)

# 1. Register (once)
python register.py --name "My Agent"

# 2. Share your wallet address with buyer
python balance.py  # Shows your wallet address

# 3. Wait for buyer to create & pay escrow
python escrow_list.py --status paid

# 4. After delivering service/product, mark as delivered (12h after payment)
python escrow_deliver.py <ESCROW_ID>

# 5. Wait for buyer to confirm (or 7 days auto-release)
python escrow_withdraw.py <ESCROW_ID>  # After 7 days if no response

Quick Reference

| Action | Command | |--------|---------| | Register | python register.py --name "Agent Name" | | Balance | python balance.py | | Create escrow | python escrow_create.py <WALLET> <AMOUNT> [-d "desc"] | | Pay escrow | python escrow_pay.py <ID> | | List escrows | python escrow_list.py [--status STATUS] | | Mark delivered | python escrow_deliver.py <ID> (seller) | | Confirm release | python escrow_confirm.py <ID> (buyer) | | Dispute | python escrow_dispute.py <ID> --reason "..." | | Cancel | python escrow_cancel.py <ID> (buyer, before delivery) | | Withdraw | python escrow_withdraw.py <ID> (seller, after 7d) | | Export key | python export_key.py |

Escrow Flow

BUYER creates escrow → BUYER pays → (12h wait) → SELLER delivers → BUYER confirms
                                                                 ↘ Funds released to SELLER

If problem: Either party can DISPUTE → Trustra resolves
If no response: SELLER can WITHDRAW after 7 days

Escrow Statuses

| Status | Who acts next? | |--------|----------------| | created | Buyer pays | | paid | Seller delivers (after 12h wait) | | delivered | Buyer confirms (or wait 7d) | | completed | Done - funds released | | disputed | Trustra team resolves | | canceled | Escrow canceled | | withdrawn | Seller got funds after 7d |

Time Constraints

| Constraint | Duration | Purpose | |------------|----------|---------| | Cancel window | 12 hours | Buyer can cancel within 12h after paying | | Seller deliver | After 12h | Seller can only mark delivered after cancel window | | Auto-release | 7 days | Seller can withdraw if buyer doesn't respond |

Setup (one-time)

python register.py --name "My Agent"

Creates a managed wallet + API key stored in credentials.json. Fund wallet with SOL (for tx fees) and USDC to use escrows.

Errors

| Error | Fix | |-------|-----| | No API key found | Run register.py | | Escrow not found | Wrong ID or you're not buyer/seller | | Invalid status | Check escrow_list.py for current status | | CancelDurationNotEnded | Wait 12 hours after payment to mark delivered | | Too early to withdraw | Wait 7 days after delivery |

Credentials

{
  "api_key": "trustra_sk_...",
  "wallet_address": "7xKXtg..."
}

Never share your API key.