@decanus-labs/escrow-cli
v0.1.0
Published
CLI for onchain dual-deposit escrow on Base L2. Agent-friendly, human-readable.
Downloads
79
Maintainers
Readme
@decanus-labs/escrow-cli
CLI for onchain dual-deposit escrow on Base L2. Human-readable by default, --json for agents.
Install
npm install -g @decanus-labs/escrow-cliQuick Start
# Create escrow (buyer deposits 0.01 ETH, 24h deadline)
escrow-cli create --seller 0x... --arbiter 0x... --amount 0.01 --duration 86400 --keyfile ./key.txt
# Seller accepts with matching stake
escrow-cli accept 0 --stake 0.01 --keyfile ./seller-key.txt
# Seller delivers work
escrow-cli deliver 0 --hash "ipfs://QmProof" --keyfile ./seller-key.txt
# Buyer approves
escrow-cli complete 0 --keyfile ./key.txt
# Check status (no key needed)
escrow-cli status 0
# List all escrows as JSON
escrow-cli list --jsonAuth
Private key is resolved in order:
--keyfile <path>flag (file containing hex key)ESCROW_KEYFILEenv var (path to key file)PRIVATE_KEYenv var (raw hex)
Read-only commands (status, list) don't require a key.
Commands
| Command | Description |
|---------|-------------|
| create | Buyer creates escrow, deposits ETH |
| accept <id> | Seller accepts, deposits stake |
| deliver <id> | Seller submits delivery proof |
| complete <id> | Buyer approves, releases funds |
| dispute <id> | Either party raises dispute |
| refund <id> | Refund expired escrow, burn seller stake |
| status <id> | Get escrow state |
| list | List recent escrows |
Output
Human-readable by default:
Escrow #0 [FUNDED]
Both deposited. Awaiting delivery or deadline.
Buyer: 0x80665e410534f8A201aFe71337815daaB9637375
Seller: 0xe7163243668A2F0B9259e70dB41200F77eC0E321
Arbiter: 0x000000000000000000000000000000000000A8b1
Payment: 0.0001 ETH
Stake: 0.0001 ETH
Deadline: 2026-04-03T21:14:42.000Z (in 9m)
Next: deliver, dispute, complete, refund (after deadline)Add --json for structured output:
escrow-cli status 0 --json | jq '.state'Global Flags
| Flag | Description |
|------|-------------|
| --json | JSON output (agent-friendly) |
| --keyfile <path> | Path to private key file |
| --rpc <url> | Override RPC endpoint |
| --contract <addr> | Override contract address |
Contract
- Address:
0xEB979aDC63efcc68E32Ef0378185368fa3648Fed - Network: Base Sepolia (chain 84532)
License
MIT
