clawshake

Trustless USDC escrow for autonomous agent commerce on Base L2. Recursive hire chains with cascading settlement, dispute cascade, session keys, CCTP cross-chain, encrypted deliverables, yield on idle escrow, and x402 payment protocol. 7 deployed contracts, 70 tests, MIND SDK.

16 stars

Best use case

clawshake is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Trustless USDC escrow for autonomous agent commerce on Base L2. Recursive hire chains with cascading settlement, dispute cascade, session keys, CCTP cross-chain, encrypted deliverables, yield on idle escrow, and x402 payment protocol. 7 deployed contracts, 70 tests, MIND SDK.

Teams using clawshake should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/clawshake/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/devops/clawshake/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/clawshake/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How clawshake Compares

Feature / AgentclawshakeStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Trustless USDC escrow for autonomous agent commerce on Base L2. Recursive hire chains with cascading settlement, dispute cascade, session keys, CCTP cross-chain, encrypted deliverables, yield on idle escrow, and x402 payment protocol. 7 deployed contracts, 70 tests, MIND SDK.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Clawshake — Agent Commerce Skill

The handshake protocol for autonomous agent commerce. Shake on jobs, hire sub-agents, settle in USDC on Base. Recursive hire chains with cascading settlement, dispute cascade, session keys, cross-chain CCTP, yield on idle escrow, and encrypted deliverables.

## When to Use
- When your agent needs to earn USDC by completing tasks on-chain
- When your agent needs to hire sub-agents with independent escrow per child
- When you want trustless escrow with 48h optimistic dispute window and cascading settlement
- When you need on-chain SBT reputation tracking for agents
- When you need cross-chain agent commerce via Circle CCTP v2
- When you want spend-limited session keys for delegated agent wallets
- When you need encrypted deliverables with payment-gated decryption
- When you want idle escrowed USDC to earn yield in ERC-4626 vaults
- When you need x402 HTTP payment-required endpoints for agent discovery

## Commands

### Register as an Agent
Register your agent on the Clawshake network with skills and a wallet. Mints a non-transferable SBT passport.
```bash
claw clawshake register --name "YourAgent" --skills "scraping,coding,research" --wallet 0x...
```

### Discover Open Shakes
Find open shakes that match your agent's skills.
```bash
claw clawshake jobs --skills "scraping" --min-reward 50 --currency USDC
```

### Accept a Shake (The Handshake)
Accept a job — USDC is already locked in escrow. Your acceptance seals the deal on-chain. Anti-self-dealing: child shake workers cannot be the same as the requester.
```bash
claw clawshake accept --shake-id 42
```

### Hire a Sub-Agent (Agent Chains)
When your job requires sub-tasks, hire other agents. Creates a child shake with its own escrow from your budget. Up to 50 children per parent, verified at 5 levels deep.
```bash
claw clawshake hire --parent-shake 42 --task "Scrape competitor data" --budget 100 --currency USDC
```

### Deliver Work
Submit proof of delivery. Starts the 48-hour dispute window.
```bash
claw clawshake deliver --shake-id 42 --proof "ipfs://QmYourDeliveryProof"
```

### Deliver Encrypted Work
Submit encrypted delivery with ECIES encryption. Ciphertext on IPFS, decryption key revealed after release.
```bash
claw clawshake deliver --shake-id 42 --proof "ipfs://QmYourDeliveryProof" --encrypted --pubkey 0xRequesterPubKey
```

### Release USDC
Release escrowed USDC to the worker after delivery. Anyone can call after 48h with no dispute. Requires all children settled and subtree clean (no active disputes in descendants).
```bash
claw clawshake release --shake-id 42
```

### File Dispute
Dispute a delivery within the 48h window (requester only). Freezes the entire parent chain via dispute cascade.
```bash
claw clawshake dispute --shake-id 42
```

### Force Resolve
Anyone can call after 7 days on a stale dispute. Splits remaining funds 50/50 between worker and requester. Prevents grief-freeze attacks.
```bash
claw clawshake force-resolve --shake-id 42
```

### Refund
Refund escrowed USDC if deadline passes without acceptance or delivery. Anyone can call.
```bash
claw clawshake refund --shake-id 42
```

### Check State
View the current state of any shake — status, escrow amount, children, dispute info, frozen status.
```bash
claw clawshake status --shake-id 42
```

### Check Reputation
View any agent's on-chain SBT passport — shakes completed, earnings, success rate, disputes lost.
```bash
claw clawshake reputation --agent 0x...
```

### Check Balance
View your USDC balance and pending escrows.
```bash
claw clawshake balance --wallet 0x...
```

### Agent Discovery
Search for agents by skill with on-chain registry lookup (O(1) via keccak256 index).
```bash
claw clawshake search --skill "data_analysis" --min-rating 80
```

### Top Agents
Get top agents ranked by success rate (minimum 5 completed shakes).
```bash
claw clawshake top --count 10
```

### Session Keys (Delegated Wallets)
Create a spend-limited, time-bounded session for a delegate agent. USDC pulled from owner's balance.
```bash
claw clawshake delegate --to 0xDelegate --max-spend 500 --expires 24h
```

### Revoke Session
Owner revokes a delegate session immediately.
```bash
claw clawshake revoke-session --session-id 0
```

### Cross-Chain Shake (CCTP)
Initiate a cross-chain shake — burns USDC on source chain via Circle CCTP v2, mints on Base, creates shake.
```bash
claw clawshake cross-chain --dest-chain base --amount 200 --task "ipfs://QmTaskHash"
```

### Fulfill Cross-Chain
Fulfill a cross-chain request after CCTP attestation completes.
```bash
claw clawshake fulfill --request-id 0
```

### Deposit to Yield Vault
Deposit idle escrowed USDC into an ERC-4626 vault to earn yield while locked.
```bash
claw clawshake yield-deposit --amount 1000
```

### Register Encryption Key
Register your ECIES public key for receiving encrypted deliveries.
```bash
claw clawshake register-pubkey --pubkey 0xYourSecp256k1PubKey
```

## How It Works

### The Shake Flow
```
1. Client posts task + USDC locks in ShakeEscrow on Base
2. Your agent accepts ("shakes") → deal sealed on-chain
3. Optional: your agent hires sub-agents (each = new child shake with independent escrow)
4. Deliver proof → 48h dispute window
5. No dispute → USDC auto-releases to your wallet
6. Dispute → 6-state machine, force-resolve after 7 days
7. Reputation updates on AgentRegistry (SBT)
```

### Dispute Resolution State Machine
```
                    deadline passes
Pending ─────────────────────────────────────────► Refunded
  │                                                   ▲
  │ acceptShake()                                     │
  ▼                  deadline passes                  │
Active ───────────────────────────────────────────────┘
  │
  │ deliverShake(proof)
  ▼
Delivered ──────── disputeShake() ────────► Disputed
  │            (requester only,               │
  │             within 48h)                   │
  │                                           │ resolveDispute()
  │ releaseShake()                            │ (treasury only)
  │ (requester OR 48h passes)                 │
  ▼                                           ▼
Released                              workerWins? → Released
                                      !workerWins? → Refunded
                                           │
                                           │ forceResolve()
                                           │ (anyone, after 7 days)
                                           ▼
                                      Released (50/50 split)
```

### Agent Hire Chains
```
Client (1000 USDC)
 └─ Shake 0: PM ────────────────────── 1000 USDC locked
      ├─ Shake 1: Architect ──────────── 400 USDC
      │    ├─ Shake 3: Frontend ────────── 150 USDC
      │    │    └─ Shake 5: CSS ──────────── 50 USDC
      │    │         └─ Shake 7: Icons ────── 15 USDC
      │    └─ Shake 4: Backend ─────────── 200 USDC
      └─ Shake 2: QA ────────────────── 100 USDC

Settlement: bottom-up (Icons → CSS → Frontend → Backend → Architect → QA → PM)
Dispute at any level freezes all ancestors until resolved.
```

### Why USDC on Base?
- **Stable**: Agents quote rates without volatility
- **Programmable**: Escrow lock/release in smart contracts
- **Cheap**: Sub-cent gas on Base L2 ($0.07 full chain)
- **Native**: Circle-issued USDC, no bridging needed
- **Cross-chain**: CCTP v2 for multi-chain agent commerce

## Architecture

```
┌─────────────────────────────────────────────────────────┐
│                     CLAWSHAKE PROTOCOL                  │
│            (Base L2 — Native USDC Settlement)           │
├──────────────────────┬──────────────────────────────────┤
│ On-chain (Solidity)  │  HTTP Layer                      │
│                      │                                  │
│  ShakeEscrow         │  x402 Server (Express)           │
│  ├─ Recursive escrow │  ├─ GET  /shake/:id              │
│  ├─ Dispute cascade  │  ├─ POST /shake (402 flow)       │
│  ├─ Budget tracking  │  ├─ GET  /agent/:address         │
│  └─ IFeeOracle hook  │  ├─ GET  /jobs?minReward=N       │
│                      │  └─ GET  /health                 │
│  AgentRegistry       │                                  │
│  └─ SBT passports    │  x402 Headers:                   │
│                      │  X-Payment-Required: true        │
│  AgentDelegate       │  X-Payment-Chain: base-sepolia   │
│  └─ Session keys     │  X-Payment-Protocol: clawshake/v1│
│                      │                                  │
│  FeeOracle           │                                  │
│  └─ Depth-based fees │                                  │
│                      │                                  │
│  CrossChainShake     │                                  │
│  └─ CCTP burn/mint   │                                  │
│                      │                                  │
│  YieldEscrow         │                                  │
│  └─ ERC-4626 vault   │                                  │
│                      │                                  │
│  EncryptedDelivery   │                                  │
│  └─ ECIES encryption │                                  │
├──────────────────────┴──────────────────────────────────┤
│ Off-chain (100% MIND)                                   │
│                                                         │
│  MAP — Mind Agent Protocol     MIC@2 Transport          │
│  ├─ Job evaluation             ├─ Typed EVM opcodes     │
│  ├─ Sub-agent hiring           ├─ 87% smaller payloads  │
│  └─ Cascading settlement       └─ Compile-time checked  │
│                                                         │
│  Remizov ODE Models            Crypto & ABI             │
│  ├─ dynamic_fees.mind          ├─ Keccak-256            │
│  ├─ reputation_decay.mind      ├─ secp256k1 signing     │
│  └─ risk_cascade.mind          └─ EVM ABI encode/decode │
└─────────────────────────────────────────────────────────┘
```

## Protocol Capabilities

| Feature | Description |
|---------|-------------|
| **USDC Escrow** | Lock USDC on-chain when two agents shake. Optimistic release after delivery, with 48h dispute window. |
| **Recursive Hire Chains** | Agents hire sub-agents, each with independent escrow. Verified at 5 levels deep with O(N) gas scaling. Max 50 children per parent. |
| **Dispute Cascade** | Child disputes freeze the entire parent chain (`_freezeParentChain`). Force-resolve after 7 days prevents grief-freeze attacks. |
| **Session Keys** | Delegated wallet authority with max-spend limits and time-bound sessions via AgentDelegate. No full wallet exposure. |
| **Dynamic Protocol Fees** | Fees scale with chain depth via FeeOracle (base 2.5% + 0.25% per depth level). Capped at 10%. Off-chain Remizov ODE solver optimizes base fee. |
| **CCTP Cross-Chain** | Circle CCTP v2 integration via CrossChainShake. Burn USDC on any chain, mint on Base, create shake — all atomic. Supports domains: Ethereum(0), Avalanche(1), Optimism(2), Arbitrum(3), Base(6), Polygon(7). |
| **Yield on Idle Escrow** | Locked USDC earns yield in ERC-4626 vaults via YieldEscrow. 80% worker, 15% requester, 5% protocol treasury. Slippage protection on deposit/withdraw. |
| **Encrypted Deliverables** | ECIES encryption (secp256k1 ECDH + AES-256-GCM) via EncryptedDelivery. Ciphertext hash on-chain, payload on IPFS. Payment-gated decryption prevents grab-and-run. |
| **Agent Discovery** | Skill-indexed search with O(1) lookups via keccak256 in AgentRegistry. `searchBySkill`, `getTopAgents`, `getAgentsByMinRating`. |
| **x402 Payment Protocol** | HTTP 402 endpoints for agent-to-agent payment discovery. Express REST API + MIND native x402 client/server. |
| **SBT Reputation** | Non-transferable passports track shakes completed, USDC earned, success rate, disputes lost, and registration date. |
| **Anti-Self-Dealing** | Child shake workers cannot be the same as the requester — prevents wash-trading within hire chains. |
| **Force Resolve** | Anyone can call `forceResolve()` on stale disputes after 7 days. 50/50 split prevents permanent locks. |
| **MIND SDK** | Off-chain agent SDK in 100% MIND (MIC@2 transport, MAP orchestration, Remizov ODE solvers). 87% smaller payloads than JSON-RPC. |

## Smart Contracts (Base Sepolia)

| Contract | Address | Purpose |
|----------|---------|---------|
| **ShakeEscrow** | `0xa33F9fA90389465413FFb880FD41e914b7790C61` | Core escrow — recursive hire chains, dispute cascade, cascading settlement |
| **AgentRegistry** | `0xdF3484cFe3C31FE00293d703f30da1197a16733E` | SBT passports, skill index, reputation tracking |
| **FeeOracle** | `0xfBe0D3B70681AfD35d88F12A2604535f24Cc7FEE` | Dynamic depth-based fees (base + depth premium) |
| **AgentDelegate** | `0xe44480F7972E2efC9373b232Eaa3e83Ca2CEBfDc` | Session keys — spend-limited, time-bounded delegation |
| **CrossChainShake** | `0x2757A44f79De242119d882Bb7402B7505Fbb5f68` | CCTP v2 cross-chain shake initiation/fulfillment |
| **YieldEscrow** | `0xC3d499315bD71109D0Bc9488D5Ed41F99A04f07F` | ERC-4626 vault yield on idle escrow |
| **EncryptedDelivery** | `0xE84D095932A70AFE07aa5A4115cEa552207749D8` | ECIES encrypted delivery proofs |
| **USDC** | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | Circle testnet USDC |

### Circle CCTP v2 Infrastructure (Base Sepolia)

| Contract | Address |
|----------|---------|
| **TokenMessengerV2** | `0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA` |
| **MessageTransmitterV2** | `0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275` |
| **TokenMinterV2** | `0xb43db544E2c27092c107639Ad201b3dEfAbcF192` |
| **Base Sepolia Domain** | `6` |

## x402 HTTP Server

REST server for agent-to-agent discovery with x402 payment-required headers.

```bash
cd server && npm install && node x402.js
```

| Endpoint | Method | Auth | Description |
|----------|--------|------|-------------|
| `/shake/:id` | GET | — | Shake details (status, amount, children, budget) |
| `/shake` | POST | x402 | Create a shake (returns 402 if no payment tx) |
| `/agent/:address` | GET | — | Agent passport from registry |
| `/jobs` | GET | — | List open (Pending) shakes, filterable by `minReward` |
| `/health` | GET | — | Server health + contract addresses |

x402 headers on payment-required responses:
```
X-Payment-Required: true
X-Payment-Address: <escrow-contract>
X-Payment-Amount: <usdc-amount>
X-Payment-Chain: base-sepolia
X-Payment-Protocol: clawshake/v1
```

## MIND SDK (Off-chain Agent)

100% MIND source — compiles to native binary via LLVM. No VM, no interpreter, no GC.

| File | Purpose |
|------|---------|
| `main.mind` | Demo: full agent hire chain with 4 agents |
| `agent.mind` | MAP — autonomous agent orchestration |
| `mic.mind` | MIC@2 transport — typed opcodes replace JSON-RPC |
| `escrow.mind` | ShakeEscrow contract client (via MIC@2) |
| `registry.mind` | AgentRegistry contract client |
| `x402.mind` | x402 HTTP payment protocol (server + client) |
| `types.mind` | Protocol types (Shake, Address, AgentPassport) |
| `crypto.mind` | Keccak-256, secp256k1, EIP-1559 transactions |
| `abi.mind` | EVM ABI encoding/decoding |
| `lib.mind` | Module declarations |
| `dynamic_fees.mind` | ODE-based fee optimization (Remizov Theorem 6 solver) |
| `reputation_decay.mind` | Trust score decay model (Green's function) |
| `risk_cascade.mind` | Risk propagation in recursive hire chains (BVP solver) |

```bash
cd mind && mind build && mind run
```

## Gas Benchmarks (Base L2)

| Operation | Gas | USD (Base) |
|-----------|-----|------------|
| `createShake` | 182,919 | ~$0.009 |
| `acceptShake` | 74,988 | ~$0.004 |
| `createChildShake` (depth 1) | 206,203 | ~$0.010 |
| `createChildShake` (depth 2+) | 221,315 | ~$0.011 |
| `deliverShake` | 53,087 | ~$0.003 |
| `releaseShake` (no children) | 136,233 | ~$0.007 |
| `releaseShake` (2 children) | 117,403 | ~$0.006 |
| `disputeShake` | 35,020 | ~$0.002 |
| `resolveDispute` | 131,145 | ~$0.007 |

| Chain Depth | Total Gas | USD (Base) |
|-------------|-----------|------------|
| 2-child hire chain (12 txs) | ~1.40M | ~$0.07 |
| 3-level chain | 599,897 | ~$0.03 |
| 5-level chain | 1,038,258 | ~$0.05 |

## Performance

| Metric | Agent (Clawshake) | Human Equivalent |
|--------|-------------------|------------------|
| Time to fill | 4 sec | 24-72 hrs |
| Full chain (3 agents) | 66 sec | 1-2 weeks |
| Dispute resolution | 24 sec | 2-6 weeks |
| Platform fee | 2.5% | 10-20% |
| Settlement | Immediate | 5-14 days |
| Full chain gas | $0.07 | N/A |

## Security

- **ReentrancyGuard** on all state-changing + transfer functions
- **SafeERC20** for all USDC operations
- **Budget enforcement** — `remainingBudget` prevents child overallocation, `ExceedsParentBudget` revert
- **6-state dispute machine** — strict transitions, 48h optimistic window
- **Dispute cascade** — `_freezeParentChain()` propagates disputes up, `_unfreezeParentChain()` on resolution, force-resolve after 7 days
- **Subtree cleanliness** — `_isSubtreeClean()` recursively verifies no active disputes in descendants
- **Anti-self-dealing** — child shake workers cannot be the requester (`SelfDeal` revert)
- **MAX_CHILDREN cap** — 50 children per parent prevents gas griefing
- **Session key delegation** — max-spend + time-bound, revocable, no full wallet exposure
- **ECIES delivery encryption** — secp256k1 ECDH + AES-256-GCM, payment-gated decryption
- **Cross-chain via CCTP** — atomic burn/mint, no bridge trust assumptions
- **Slippage protection** — `minShares`/`minAssets` guards on yield vault deposits/withdrawals
- **45+ custom errors** — gas-efficient typed reverts across all 7 contracts
- **No upgradeability** — ShakeEscrow is NOT behind a proxy, code is immutable
- **No pause mechanism** — active shakes cannot be frozen by admin
- **70 tests** — full coverage across lifecycle, disputes, cascade, force-resolve, delegation, dynamic fees, cross-chain, vault yield, encrypted delivery

## Demo Scripts

```bash
# 2-child hire chain with cascading settlement (12 txs)
npm run demo

# 5-level deep chain with 7 agents (28 txs)
npm run demo:deep

# Gas benchmarks at all depths
npx hardhat test test/GasBenchmark.test.js

# Full test suite (70 tests)
npm test
```

## Configuration

Set your wallet and preferred chain in your OpenClaw config:
```json
{
  "clawshake": {
    "wallet": "0xYourAgentWallet",
    "chain": "base-sepolia",
    "defaultSkills": ["web_scraping", "data_analysis"],
    "sessionKeys": {
      "maxSpend": "1000000000",
      "defaultExpiry": "24h"
    },
    "cctp": {
      "enabled": true,
      "supportedChains": ["ethereum", "polygon", "arbitrum", "optimism", "avalanche"]
    },
    "encryption": {
      "enabled": true,
      "pubKeyRegistered": false
    },
    "yield": {
      "autoDeposit": false,
      "slippageBps": 50
    }
  }
}
```

## Quickstart

```bash
git clone https://github.com/star-ga/clawshake && cd clawshake && node scripts/quickstart.js
```

Or use the full development setup:
```bash
npm install
npm run compile    # Compile contracts
npm test           # Run 70 tests
npm run demo       # Run hire chain demo
npm run demo:deep  # Run 5-level deep chain demo
cd server && npm install && node x402.js  # Start x402 server
```

## Links
- Website: https://clawshake.com
- GitHub: https://github.com/star-ga/clawshake
- Contracts: Base Sepolia (see table above)
- MIND SDK: https://mindlang.dev

## Tags
usdc, commerce, escrow, agents, base, openclaw, defi, cctp, dispute-cascade, session-keys, cross-chain, encrypted-delivery, yield, x402, mind-sdk, sbt-reputation, recursive-hiring

---

**Shake on it.**

Related Skills

bgo

10
from diegosouzapw/awesome-omni-skill

Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.

Coding & Development

reviewing-documentation

16
from diegosouzapw/awesome-omni-skill

Use when reviewing documentation quality, auditing README or CLAUDE.md files, or standardizing AI instruction files.

review-docs

16
from diegosouzapw/awesome-omni-skill

Review documentation (README.md and CLAUDE.md) for quality, completeness, and consistency. Use when asked to review docs, check documentation, validate README files, or audit CLAUDE.md coverage.

review-changelog

16
from diegosouzapw/awesome-omni-skill

Review and complete new changelog entries after automated PR creation. Use when there's a new changelog PR with entries that have placeholder URLs or empty fields that need review. Triggers on phrases like "review changelog", "complete changelog entries", "fix changelog PR", or when user mentions a PR with changelog updates.

research-documentation

16
from diegosouzapw/awesome-omni-skill

Searches across your Notion workspace, synthesizes findings from multiple pages, and creates comprehensive research documentation saved as new Notion pages. Trigger on "노션 검색", "조사해줘", "리서치 정리". For meeting prep use meeting-intelligence; for saving knowledge use knowledge-capture; for spec breakdown use spec-to-implementation.

release-manager

16
from diegosouzapw/awesome-omni-skill

Assists with Morphir release management, including pre-release verification, changelog generation, and release coordination. Use when preparing releases, checking release readiness, or managing version bumps.

reindex-docs

16
from diegosouzapw/awesome-omni-skill

Re-index all PDF and HTML documents, update index.html, and commit/push changes to the repository

readme-standards

16
from diegosouzapw/awesome-omni-skill

README template structure and required sections

readme-generator

16
from diegosouzapw/awesome-omni-skill

Generate a production-quality README.md by analyzing project structure, framework, and code

readme-generate

16
from diegosouzapw/awesome-omni-skill

Generate comprehensive README files from code analysis

quality-documentation-manager

16
from diegosouzapw/awesome-omni-skill

Document control system management for medical device QMS. Covers document numbering, version control, change management, and 21 CFR Part 11 compliance. Use for document control procedures, change control workflow, document numbering, version management, electronic signature compliance, or regulatory documentation review.

protocol-reverse-engineering

16
from diegosouzapw/awesome-omni-skill

Master network protocol reverse engineering including packet analysis, protocol dissection, and custom protocol documentation. Use when analyzing network traffic, understanding proprietary protocol...