USDC Escrow

Trustless USDC escrow for agent-to-agent payments on Base. Create, release, dispute escrows via simple commands.

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 754 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The description advertises a 'trustless USDC escrow' on Base, but the API docs state the server wallet 'approves USDC spending and calls the smart contract to lock funds.' That makes the service custodial, not trustless — a direct contradiction. The skill also requires no user credentials, which is inconsistent with a true non‑custodial escrow where the user signs on‑chain transactions.
!
Instruction Scope
All runtime scripts make unauthenticated HTTP calls to https://api.payclawback.xyz (or overridden ESCROW_API_URL). The instructions direct financial actions (create, release, resolve, dispute, claim) to an external service without any authentication or local wallet interaction — meaning funds/control depend on that service's behavior. The SKILL.md does not explain how depositor authorization is enforced.
Install Mechanism
No install spec; the skill is instruction/script based and only requires curl and jq. Nothing is downloaded or written during install, so install mechanism risk is low.
!
Credentials
The skill requests no credentials or wallet access from the user, yet the API docs indicate a server wallet is used to transact. For a payment/escrow service this is disproportionate and suspicious: either the user must provide a signing key (not requested) or the service is custodial and must be trusted — the skill does not make this clear. Additionally, endpoints are documented as 'Auth: None', which is alarming for fund movement.
Persistence & Privilege
The skill does not request persistent presence (always:false) and does not attempt to modify other skills or agent config. It does not require elevated platform privileges.
What to consider before installing
This skill advertises a 'trustless' on‑chain escrow but its scripts call a third‑party API that (per its docs) uses a central server wallet and requires no authentication. That is a major red flag for any money‑handling service: you could be instructing the agent to send payment requests to an external operator who controls the funds. Before installing or using: 1) Ask the author to explain exactly how funds are deposited and authorized (how does the server know the depositor consented?), and whether the service is custodial. 2) Require authenticated API endpoints (API keys, signed requests) or local wallet signing so you control funds. 3) Verify the API host (who runs api.payclawback.xyz), request an audit of the smart contract and backend, and prefer services with verifiable on‑chain non‑custodial flows. 4) If you test, use only small amounts on the specified testnet and inspect actual on‑chain transactions. 5) Consider avoiding this skill until the custodial vs trustless contradiction and the lack of authentication are resolved.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
a2avk9737y3q4paf6850ynaptvwjhn80s5xdbasevk9737y3q4paf6850ynaptvwjhn80s5xddefivk9737y3q4paf6850ynaptvwjhn80s5xdescrowvk9737y3q4paf6850ynaptvwjhn80s5xdlatestvk9737y3q4paf6850ynaptvwjhn80s5xdpaymentsvk9737y3q4paf6850ynaptvwjhn80s5xdstablecoinvk9737y3q4paf6850ynaptvwjhn80s5xdusdcvk9737y3q4paf6850ynaptvwjhn80s5xd

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🔐 Clawdis
Binscurl, jq

SKILL.md

USDC Escrow Skill

Overview

This skill provides trustless USDC escrow services for agent-to-agent payments on Base. It allows AI agents to create, manage, and resolve payment escrows using smart contracts.

API

All scripts point to https://api.payclawback.xyz by default. To use a different backend, set:

  • ESCROW_API_URL - Override API URL (optional)

Available Commands

Create an Escrow

Creates a new escrow holding USDC for a beneficiary.

./scripts/create-escrow.sh <beneficiary_address> <amount_usdc> "<description>" <deadline_hours>

Example: ./scripts/create-escrow.sh 0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28 10 "Payment for data analysis" 48

List Escrows

List all escrows, optionally filtered by state or depositor.

./scripts/list-escrows.sh [--state active|released|disputed|refunded|expired] [--depositor 0x...]

Get Escrow Details

Get details of a specific escrow by ID.

./scripts/get-escrow.sh <escrow_id>

Release Escrow

Release escrowed funds to the beneficiary.

./scripts/release-escrow.sh <escrow_id>

Dispute Escrow

Open a dispute on an active escrow.

./scripts/dispute-escrow.sh <escrow_id>

Resolve Dispute

Resolve a disputed escrow as arbiter.

./scripts/resolve-dispute.sh <escrow_id> <true|false>
  • true = release funds to beneficiary
  • false = refund to depositor

Claim Expired Escrow

Reclaim funds from an expired escrow.

./scripts/claim-expired.sh <escrow_id>

Workflow Example

  1. Agent A wants to pay Agent B for a service
  2. Agent A creates an escrow: ./scripts/create-escrow.sh 0xAgentB 50 "Sentiment analysis job" 24
  3. Agent B performs the service
  4. Agent A releases payment: ./scripts/release-escrow.sh 1

How It Works

  • USDC is locked in a verified smart contract on Base
  • The escrow has a deadline - funds return to depositor if expired
  • Either party can open a dispute for arbiter resolution
  • The AI arbiter agent resolves disputes impartially
  • All transactions are on-chain and verifiable

API Reference

See references/api-docs.md for complete API documentation.

Files

9 total
Select a file
Select a file to preview.

Comments

Loading comments…