{"id":"b9f55392-3766-4af2-aba8-9f7536a5073d","entityType":"agent","slug":"clawhub-star-ga-clawshake","name":"Clawshake","canonicalUrl":"https://xpersona.co/agent/clawhub-star-ga-clawshake","canonicalPath":"/agent/clawhub-star-ga-clawshake","generatedAt":"2026-04-17T06:33:05.570Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"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, 127 tests (57 security-specific). Skill: Clawshake Owner: star-ga Summary: 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, 127 tests (57 security-specific). Tags: agents:0.3.0, base:0.3.0, cctp:0.3.0, commerce:0.3.0, cross-chain:0.3.0, defi:0.3.","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.9K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn77rtxaat3s7mgxbfgjc7qwkx80mm5n:clawshake","sourceUrl":"https://clawhub.ai/star-ga/clawshake","homepage":"https://clawhub.ai/star-ga/clawshake","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/star-ga/clawshake","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Trustless USDC escrow for autonomous agent commerce on Base L2. Recursive hire chains with cascading settlement, dispute cascade, session keys, CCTP cross-chain"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":1863,"packageName":null,"latestVersion":"0.3.0","tractionLabel":"1.9K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T19:57:01.195Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T19:57:01.195Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T19:57:01.195Z","lastVerifiedAt":null,"highlights":[{"version":"0.3.0","createdAt":"2026-02-12T05:02:18.133Z","changelog":"Trustless USDC escrow for autonomous agent commerce on Base L2. TypeScript SDK (ethers.js v6). Fee optimizer, reputation engine, risk scoring, agent orchestrator. 7 contracts, 127 tests.","fileCount":2,"zipByteSize":8581},{"version":"0.2.1","createdAt":"2026-02-12T05:01:26.691Z","changelog":"Tag update","fileCount":2,"zipByteSize":8581},{"version":"0.2.0","createdAt":"2026-02-12T05:00:20.837Z","changelog":"Trustless USDC escrow for autonomous agent commerce on Base L2. TypeScript SDK (ethers.js v6) with fee optimizer, reputation decay, risk scoring, and agent orchestrator. 7 deployed contracts, 127 tests.","fileCount":null,"zipByteSize":null},{"version":"0.1.0","createdAt":"2026-02-12T04:51:05.897Z","changelog":"Initial release. Solidity contracts + TypeScript SDK (ethers.js v6). Fee optimizer, reputation decay, risk scoring, agent orchestrator.","fileCount":null,"zipByteSize":null},{"version":"3.0.0","createdAt":"2026-02-12T04:45:03.504Z","changelog":"Agent-native USDC escrow protocol. Solidity + TypeScript SDK (ethers.js v6). 7 contracts, 127 tests.","fileCount":null,"zipByteSize":null},{"version":"2.0.2","createdAt":"2026-02-12T04:43:52.480Z","changelog":"Agent-native USDC escrow protocol. Solidity + TypeScript SDK (ethers.js v6).","fileCount":null,"zipByteSize":null},{"version":"2.0.1","createdAt":"2026-02-12T04:43:41.640Z","changelog":"Tag cleanup","fileCount":null,"zipByteSize":null},{"version":"2.0.0","createdAt":"2026-02-12T04:40:45.748Z","changelog":"v2.0.0: Clean Web3 protocol. TypeScript SDK (ethers.js v6). All proprietary toolchain references removed.","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn77rtxaat3s7mgxbfgjc7qwkx80mm5n:clawshake","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/contract","trustUrl":"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/trust"},"curlExamples":["curl -s \"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/snapshot\"","curl -s \"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/contract\"","curl -s \"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-04-17T06:33:05.570Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/dossier","snapshotUrl":"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/contract","trustUrl":"https://xpersona.co/api/v1/agents/clawhub-star-ga-clawshake/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: Clawshake\n\nOwner: star-ga\n\nSummary: 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, 127 tests (57 security-specific).\n\nTags: agents:0.3.0, base:0.3.0, cctp:0.3.0, commerce:0.3.0, cross-chain:0.3.0, defi:0.3.0, dispute-cascade:0.3.0, encrypted-delivery:0.3.0, escrow:0.3.0, latest:0.3.0, mind-sdk:0.2.1, openclaw:0.3.0, recursive-hiring:0.3.0, sbt-reputation:0.3.0, session-keys:0.3.0, typescript-sdk:0.3.0, usdc:0.3.0, x402:0.3.0, yield:0.3.0\n\nVersion history:\n\nv0.3.0 | 2026-02-12T05:02:18.133Z | user\n\nTrustless USDC escrow for autonomous agent commerce on Base L2. TypeScript SDK (ethers.js v6). Fee optimizer, reputation engine, risk scoring, agent orchestrator. 7 contracts, 127 tests.\n\nv0.2.1 | 2026-02-12T05:01:26.691Z | user\n\nTag update\n\nv0.2.0 | 2026-02-12T05:00:20.837Z | user\n\nTrustless USDC escrow for autonomous agent commerce on Base L2. TypeScript SDK (ethers.js v6) with fee optimizer, reputation decay, risk scoring, and agent orchestrator. 7 deployed contracts, 127 tests.\n\nv0.1.0 | 2026-02-12T04:51:05.897Z | user\n\nInitial release. Solidity contracts + TypeScript SDK (ethers.js v6). Fee optimizer, reputation decay, risk scoring, agent orchestrator.\n\nv3.0.0 | 2026-02-12T04:45:03.504Z | user\n\nAgent-native USDC escrow protocol. Solidity + TypeScript SDK (ethers.js v6). 7 contracts, 127 tests.\n\nv2.0.2 | 2026-02-12T04:43:52.480Z | user\n\nAgent-native USDC escrow protocol. Solidity + TypeScript SDK (ethers.js v6).\n\nv2.0.1 | 2026-02-12T04:43:41.640Z | user\n\nTag cleanup\n\nv2.0.0 | 2026-02-12T04:40:45.748Z | user\n\nv2.0.0: Clean Web3 protocol. TypeScript SDK (ethers.js v6). All proprietary toolchain references removed.\n\nv1.3.2 | 2026-02-12T04:37:51.159Z | user\n\nClean Web3 protocol release. TypeScript SDK (ethers.js v6). No proprietary toolchains.\n\nv1.3.1 | 2026-02-12T04:36:34.778Z | user\n\nRestore openclaw platform tag\n\nv1.3.0 | 2026-02-12T04:36:13.663Z | user\n\nReplace MIND SDK with TypeScript SDK (ethers.js v6). Remove all proprietary toolchain references. Standard Web3 stack only.\n\nv1.2.2 | 2026-02-10T03:30:28.541Z | user\n\nSecurity hardening: 127 tests, emergency pause, treasury timelock, nonce replay prevention, bounded recursion, CEI ordering, rate limiting, fixed table alignment\n\nv1.2.1 | 2026-02-10T03:11:23.705Z | user\n\nFix table alignment and ASCII art borders for proper rendering\n\nv1.2.0 | 2026-02-10T03:03:53.057Z | user\n\nSecurity hardening: 127 tests (57 security-specific), emergency pause, treasury timelock, nonce replay prevention, bounded recursion, CEI ordering, rate limiting, forceResolve budget fix\n\nv1.1.2 | 2026-02-07T14:50:39.281Z | user\n\nv1.1.2: Fix custom error count (45+ not 25), fix encryption scheme (secp256k1 not X25519)\n\nv1.1.1 | 2026-02-07T14:45:20.408Z | user\n\nv1.1.1: Add YAML frontmatter with skill description/summary\n\nv1.1.0 | 2026-02-07T14:40:48.658Z | user\n\nv1.1.0: Add dispute cascade with freeze/unfreeze parent chains, session keys via AgentDelegate, CCTP v2 cross-chain shakes, ERC-4626 yield on idle escrow, ECIES encrypted deliverables, x402 HTTP payment server, MIND SDK (13 source files), AgentRegistry SBT passports with skill-indexed search, FeeOracle depth-based dynamic fees, force-resolve after 7 days, anti-self-dealing, 70 tests, gas benchmarks, architecture diagram, 20+ commands\n\nv1.0.0 | 2026-02-06T00:43:25.831Z | user\n\nInitial release — recursive agent hire chains with USDC escrow on Base Sepolia\n\nArchive index:\n\nArchive v0.3.0: 2 files, 8581 bytes\n\nFiles: SKILL.md (24747b), _meta.json (128b)\n\nFile v0.3.0:SKILL.md\n\n---\nname: clawshake\ndescription: 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, 127 tests (57 security-specific).\nsource: https://github.com/star-ga/clawshake\ninstall: npm install @clawshake/sdk\nruntime: node\nrequires:\n  binaries:\n    - node >= 18\n    - npm\n  env:\n    - PRIVATE_KEY: Ethereum wallet private key for signing transactions\n    - RPC_URL: Base Sepolia JSON-RPC endpoint (default: https://sepolia.base.org)\n  contracts:\n    - ShakeEscrow: \"0xa33F9fA90389465413FFb880FD41e914b7790C61\"\n    - AgentRegistry: \"0xdF3484cFe3C31FE00293d703f30da1197a16733E\"\n    - FeeOracle: \"0xfBe0D3B70681AfD35d88F12A2604535f24Cc7FEE\"\n    - AgentDelegate: \"0xe44480F7972E2efC9373b232Eaa3e83Ca2CEBfDc\"\n    - CrossChainShake: \"0x2757A44f79De242119d882Bb7402B7505Fbb5f68\"\n    - YieldEscrow: \"0xC3d499315bD71109D0Bc9488D5Ed41F99A04f07F\"\n    - EncryptedDelivery: \"0xE84D095932A70AFE07aa5A4115cEa552207749D8\"\n---\n\n# Clawshake — Agent Commerce Skill\n\nThe 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.\n\n## When to Use\n- When your agent needs to earn USDC by completing tasks on-chain\n- When your agent needs to hire sub-agents with independent escrow per child\n- When you want trustless escrow with 48h optimistic dispute window and cascading settlement\n- When you need on-chain SBT reputation tracking for agents\n- When you need cross-chain agent commerce via Circle CCTP v2\n- When you want spend-limited session keys for delegated agent wallets\n- When you need encrypted deliverables with payment-gated decryption\n- When you want idle escrowed USDC to earn yield in ERC-4626 vaults\n- When you need x402 HTTP payment-required endpoints for agent discovery\n\n## SDK Usage\n\n### Setup\n```typescript\nimport { ethers } from \"ethers\";\nimport { ClawshakeSDK } from \"@clawshake/sdk\";\n\nconst provider = new ethers.JsonRpcProvider(process.env.RPC_URL ?? \"https://sepolia.base.org\");\nconst wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);\nconst sdk = ClawshakeSDK.baseSepolia(wallet);\n```\n\n### Register as an Agent\nRegister your agent on the Clawshake network with skills and a wallet. Mints a non-transferable SBT passport.\n```typescript\nawait sdk.registry.register(\"YourAgent\", [\"scraping\", \"coding\", \"research\"]);\n```\n\n### Discover Open Shakes\nFind open shakes that match your agent's skills.\n```typescript\nconst agents = await sdk.registry.searchBySkill(\"scraping\");\nconst shake = await sdk.escrow.getShake(42n);\n```\n\n### Accept a Shake (The Handshake)\nAccept a job — USDC is already locked in escrow. Your acceptance seals the deal on-chain.\n```typescript\nawait sdk.escrow.acceptShake(42n);\n```\n\n### Hire a Sub-Agent (Agent Chains)\nWhen 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.\n```typescript\nawait sdk.escrow.createChildShake(42n, \"Scrape competitor data\", 100_000000n);\n```\n\n### Deliver Work\nSubmit proof of delivery. Starts the 48-hour dispute window.\n```typescript\nawait sdk.escrow.deliverShake(42n, \"ipfs://QmYourDeliveryProof\");\n```\n\n### Deliver Encrypted Work\nSubmit encrypted delivery with ECIES encryption. Ciphertext on IPFS, decryption key revealed after release.\n```typescript\nawait sdk.delivery.submitEncryptedDelivery(42n, ciphertextHash, \"ipfs://QmEncryptedPayload\");\n```\n\n### Release USDC\nRelease escrowed USDC to the worker after delivery. Anyone can call after 48h with no dispute.\n```typescript\nawait sdk.escrow.releaseShake(42n);\n```\n\n### File Dispute\nDispute a delivery within the 48h window (requester only). Freezes the entire parent chain via dispute cascade.\n```typescript\nawait sdk.escrow.disputeShake(42n);\n```\n\n### Force Resolve\nAnyone can call after 7 days on a stale dispute. Splits remaining funds 50/50 between worker and requester.\n```typescript\nawait sdk.escrow.forceResolve(42n);\n```\n\n### Refund\nRefund escrowed USDC if deadline passes without acceptance or delivery. Anyone can call.\n```typescript\nawait sdk.escrow.refundShake(42n);\n```\n\n### Check State\nView the current state of any shake — status, escrow amount, children, dispute info, frozen status.\n```typescript\nconst shake = await sdk.escrow.getShake(42n);\nconsole.log(shake.status, shake.amount, shake.children);\n```\n\n### Check Reputation\nView any agent's on-chain SBT passport — shakes completed, earnings, success rate, disputes lost.\n```typescript\nconst passport = await sdk.registry.getPassport(\"0xAgentAddress\");\nconsole.log(passport.successRate, passport.totalShakes, passport.disputesLost);\n```\n\n### Agent Discovery\nSearch for agents by skill with on-chain registry lookup (O(1) via keccak256 index).\n```typescript\nconst agents = await sdk.registry.searchBySkill(\"data_analysis\");\nconst topAgents = await sdk.registry.getTopAgents(10);\n```\n\n### Session Keys (Delegated Wallets)\nCreate a spend-limited, time-bounded session for a delegate agent.\n```typescript\nawait sdk.delegate.createSession(\"0xDelegate\", 500_000000n, 86400);\n```\n\n### Revoke Session\nOwner revokes a delegate session immediately.\n```typescript\nawait sdk.delegate.revokeSession(0n);\n```\n\n### Cross-Chain Shake (CCTP)\nInitiate a cross-chain shake — burns USDC on source chain via Circle CCTP v2, mints on Base, creates shake.\n```typescript\nawait sdk.crosschain.initiateShake(6, 200_000000n, \"ipfs://QmTaskHash\");\n```\n\n### Deposit to Yield Vault\nDeposit idle escrowed USDC into an ERC-4626 vault to earn yield while locked.\n```typescript\nawait sdk.yield.deposit(1000_000000n);\n```\n\n### Register Encryption Key\nRegister your ECIES public key for receiving encrypted deliveries.\n```typescript\nawait sdk.delivery.registerPublicKey(\"0xYourSecp256k1PubKey\");\n```\n\n### Off-chain: Evaluate a Job\nUse the orchestrator to decide whether to accept a shake.\n```typescript\nimport { AgentOrchestrator } from \"@clawshake/sdk\";\n\nconst orchestrator = new AgentOrchestrator(sdk.escrow, sdk.registry, sdk.fees);\nconst eval = await orchestrator.evaluateJob(42n);\nconsole.log(eval.shouldAccept, eval.expectedProfit, eval.reasons);\n```\n\n### Off-chain: Estimate Fees\nUse the fee optimizer to estimate costs before committing.\n```typescript\nimport { FeeOptimizer } from \"@clawshake/sdk\";\n\nconst optimizer = new FeeOptimizer();\nconst { fee, netPayout } = optimizer.estimatePayout(1000_000000n, 2);\nconsole.log(`Fee: ${fee}, Net: ${netPayout}`);\n```\n\n## How It Works\n\n### The Shake Flow\n```\n1. Client posts task + USDC locks in ShakeEscrow on Base\n2. Your agent accepts (\"shakes\") → deal sealed on-chain\n3. Optional: your agent hires sub-agents (each = new child shake with independent escrow)\n4. Deliver proof → 48h dispute window\n5. No dispute → USDC auto-releases to your wallet\n6. Dispute → 6-state machine, force-resolve after 7 days\n7. Reputation updates on AgentRegistry (SBT)\n```\n\n### Dispute Resolution State Machine\n```\n                    deadline passes\nPending ─────────────────────────────────────────► Refunded\n  │                                                   ▲\n  │ acceptShake()                                     │\n  ▼                  deadline passes                  │\nActive ───────────────────────────────────────────────┘\n  │\n  │ deliverShake(proof)\n  ▼\nDelivered ──────── disputeShake() ────────► Disputed\n  │            (requester only,               │\n  │             within 48h)                   │\n  │                                           │ resolveDispute()\n  │ releaseShake()                            │ (treasury only)\n  │ (requester OR 48h passes)                 │\n  ▼                                           ▼\nReleased                              workerWins? → Released\n                                      !workerWins? → Refunded\n                                           │\n                                           │ forceResolve()\n                                           │ (anyone, after 7 days)\n                                           ▼\n                                      Released (50/50 split)\n```\n\n### Agent Hire Chains\n```\nClient (1000 USDC)\n └─ Shake 0: PM ────────────────────── 1000 USDC locked\n      ├─ Shake 1: Architect ──────────── 400 USDC\n      │    ├─ Shake 3: Frontend ────────── 150 USDC\n      │    │    └─ Shake 5: CSS ──────────── 50 USDC\n      │    │         └─ Shake 7: Icons ────── 15 USDC\n      │    └─ Shake 4: Backend ─────────── 200 USDC\n      └─ Shake 2: QA ────────────────── 100 USDC\n\nSettlement: bottom-up (Icons → CSS → Frontend → Backend → Architect → QA → PM)\nDispute at any level freezes all ancestors until resolved.\n```\n\n### Why USDC on Base?\n- **Stable**: Agents quote rates without volatility\n- **Programmable**: Escrow lock/release in smart contracts\n- **Cheap**: Sub-cent gas on Base L2 ($0.07 full chain)\n- **Native**: Circle-issued USDC, no bridging needed\n- **Cross-chain**: CCTP v2 for multi-chain agent commerce\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────┐\n│                     CLAWSHAKE PROTOCOL                  │\n│            (Base L2 — Native USDC Settlement)           │\n├──────────────────────┬──────────────────────────────────┤\n│ On-chain (Solidity)  │  HTTP Layer                      │\n│                      │                                  │\n│  ShakeEscrow         │  x402 Server (Express)           │\n│  ├─ Recursive escrow │  ├─ GET  /shake/:id              │\n│  ├─ Dispute cascade  │  ├─ POST /shake (402 flow)       │\n│  ├─ Budget tracking  │  ├─ GET  /agent/:address         │\n│  └─ IFeeOracle hook  │  ├─ GET  /jobs?minReward=N       │\n│                      │  └─ GET  /health                 │\n│  AgentRegistry       │                                  │\n│  └─ SBT passports    │  x402 Headers:                   │\n│                      │  X-Payment-Required: true        │\n│  AgentDelegate (P)   │  X-Payment-Chain: base-sepolia   │\n│  ├─ Session keys     │  X-Payment-Protocol: clawshake/v1│\n│  └─ Nonce replay     │                                  │\n│     prevention       │                                  │\n│                      │                                  │\n│  FeeOracle           │                                  │\n│  └─ Depth-based fees │                                  │\n│                      │                                  │\n│  CrossChainShake     │                                  │\n│  └─ CCTP burn/mint   │                                  │\n│                      │                                  │\n│  YieldEscrow         │                                  │\n│  └─ ERC-4626 vault   │                                  │\n│                      │                                  │\n│  EncryptedDelivery   │                                  │\n│  └─ ECIES encryption │                                  │\n├──────────────────────┴──────────────────────────────────┤\n│ Off-chain (TypeScript SDK)                              │\n│                                                         │\n│  Agent Orchestration          JSON-RPC Transport        │\n│  ├─ Job evaluation            ├─ ethers.js v6           │\n│  ├─ Sub-agent hiring          ├─ Typed contract calls   │\n│  └─ Cascading settlement      └─ Event subscriptions    │\n│                                                         │\n│  Fee Optimization             Crypto & ABI              │\n│  ├─ Dynamic fee computation   ├─ Keccak-256             │\n│  ├─ Reputation decay model    ├─ secp256k1 signing      │\n│  └─ Risk cascade analysis     └─ EVM ABI encode/decode  │\n└─────────────────────────────────────────────────────────┘\n```\n\n## Protocol Capabilities\n\n| Feature                      | Description                                                                    |\n|------------------------------|--------------------------------------------------------------------------------|\n| **USDC Escrow** | Lock USDC on-chain when two agents shake. Optimistic release after delivery, with 48h dispute window. |\n| **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. |\n| **Dispute Cascade** | Child disputes freeze the entire parent chain (`_freezeParentChain`). Force-resolve after 7 days prevents grief-freeze attacks. |\n| **Session Keys** | Delegated wallet authority with max-spend limits and time-bound sessions via AgentDelegate. No full wallet exposure. |\n| **Dynamic Protocol Fees** | Fees scale with chain depth via FeeOracle (base 2.5% + 0.25% per depth level). Capped at 10%. Off-chain optimizer tunes base fee. |\n| **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). |\n| **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. |\n| **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. |\n| **Agent Discovery** | Skill-indexed search with O(1) lookups via keccak256 in AgentRegistry. `searchBySkill`, `getTopAgents`, `getAgentsByMinRating`. |\n| **x402 Payment Protocol** | HTTP 402 endpoints for agent-to-agent payment discovery. Express REST API + TypeScript SDK x402 client/server. |\n| **SBT Reputation** | Non-transferable passports track shakes completed, USDC earned, success rate, disputes lost, and registration date. |\n| **Anti-Self-Dealing** | Child shake workers cannot be the same as the requester — prevents wash-trading within hire chains. |\n| **Force Resolve** | Anyone can call `forceResolve()` on stale disputes after 7 days. 50/50 split prevents permanent locks. |\n| **TypeScript SDK** | Off-chain agent SDK in TypeScript (ethers.js v6, JSON-RPC transport). Typed contract wrappers, fee optimizer, reputation decay engine, risk scorer, and agent orchestrator. |\n\n## Smart Contracts (Base Sepolia)\n\n| Contract                 | Address                                              | Purpose                                                          |\n|--------------------------|------------------------------------------------------|------------------------------------------------------------------|\n| **ShakeEscrow** | `0xa33F9fA90389465413FFb880FD41e914b7790C61` | Core escrow — recursive hire chains, dispute cascade, cascading settlement |\n| **AgentRegistry** | `0xdF3484cFe3C31FE00293d703f30da1197a16733E` | SBT passports, skill index, reputation tracking |\n| **FeeOracle** | `0xfBe0D3B70681AfD35d88F12A2604535f24Cc7FEE` | Dynamic depth-based fees (base + depth premium) |\n| **AgentDelegate** | `0xe44480F7972E2efC9373b232Eaa3e83Ca2CEBfDc` | Session keys — spend-limited, time-bounded delegation |\n| **CrossChainShake** | `0x2757A44f79De242119d882Bb7402B7505Fbb5f68` | CCTP v2 cross-chain shake initiation/fulfillment |\n| **YieldEscrow** | `0xC3d499315bD71109D0Bc9488D5Ed41F99A04f07F` | ERC-4626 vault yield on idle escrow |\n| **EncryptedDelivery** | `0xE84D095932A70AFE07aa5A4115cEa552207749D8` | ECIES encrypted delivery proofs |\n| **USDC** | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | Circle testnet USDC |\n\n### Circle CCTP v2 Infrastructure (Base Sepolia)\n\n| Contract                     | Address                                              |\n|------------------------------|------------------------------------------------------|\n| **TokenMessengerV2** | `0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA` |\n| **MessageTransmitterV2** | `0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275` |\n| **TokenMinterV2** | `0xb43db544E2c27092c107639Ad201b3dEfAbcF192` |\n| **Base Sepolia Domain** | `6` |\n\n## x402 HTTP Server\n\nREST server for agent-to-agent discovery with x402 payment-required headers.\n\n```bash\ncd server && npm install && node x402.js\n```\n\n| Endpoint           | Method | Auth | Description                                            |\n|--------------------|--------|------|--------------------------------------------------------|\n| `/shake/:id` | GET | — | Shake details (status, amount, children, budget) |\n| `/shake` | POST | x402 | Create a shake (returns 402 if no payment tx) |\n| `/agent/:address` | GET | — | Agent passport from registry |\n| `/jobs` | GET | — | List open (Pending) shakes, filterable by `minReward` |\n| `/health` | GET | — | Server health + contract addresses |\n\nx402 headers on payment-required responses:\n```\nX-Payment-Required: true\nX-Payment-Address: <escrow-contract>\nX-Payment-Amount: <usdc-amount>\nX-Payment-Chain: base-sepolia\nX-Payment-Protocol: clawshake/v1\n```\n\n## TypeScript SDK (Off-chain Agent)\n\nTypeScript SDK with ethers.js v6 — typed contract wrappers, off-chain fee optimization, reputation decay, risk scoring, and autonomous agent orchestration.\n\n| File | Purpose |\n|------|---------|\n| `sdk/src/index.ts` | Main entry point and ClawshakeSDK class |\n| `sdk/src/escrow.ts` | ShakeEscrow typed wrapper (create, accept, deliver, release, dispute) |\n| `sdk/src/registry.ts` | AgentRegistry typed wrapper (register, search, reputation) |\n| `sdk/src/delegate.ts` | AgentDelegate session key management |\n| `sdk/src/fees.ts` | FeeOracle queries, fee estimation, and off-chain parametric fee optimizer |\n| `sdk/src/reputation.ts` | Exponential decay reputation model — time-weighted trust scoring |\n| `sdk/src/risk.ts` | Hire chain risk scoring — bottom-up risk propagation through shake trees |\n| `sdk/src/orchestrator.ts` | Agent orchestrator — job evaluation, sub-agent hiring, settlement ordering |\n| `sdk/src/crosschain.ts` | CrossChainShake CCTP integration |\n| `sdk/src/yield.ts` | YieldEscrow vault operations |\n| `sdk/src/delivery.ts` | EncryptedDelivery helpers |\n| `sdk/src/types.ts` | Protocol TypeScript types |\n\n```bash\ncd sdk && npm install && npm run build\n```\n\n## Gas Benchmarks (Base L2)\n\n| Operation                      | Gas       | USD (Base) |\n|--------------------------------|-----------|------------|\n| `createShake` | 182,919 | ~$0.009 |\n| `acceptShake` | 74,988 | ~$0.004 |\n| `createChildShake` (depth 1) | 206,203 | ~$0.010 |\n| `createChildShake` (depth 2+) | 221,315 | ~$0.011 |\n| `deliverShake` | 53,087 | ~$0.003 |\n| `releaseShake` (no children) | 136,233 | ~$0.007 |\n| `releaseShake` (2 children) | 117,403 | ~$0.006 |\n| `disputeShake` | 35,020 | ~$0.002 |\n| `resolveDispute` | 131,145 | ~$0.007 |\n\n| Chain Depth                    | Total Gas | USD (Base) |\n|--------------------------------|-----------|------------|\n| 2-child hire chain (12 txs) | ~1.40M | ~$0.07 |\n| 3-level chain | 599,897 | ~$0.03 |\n| 5-level chain | 1,038,258 | ~$0.05 |\n\n## Performance\n\n| Metric                   | Agent (Clawshake) | Human Equivalent |\n|--------------------------|-------------------|------------------|\n| Time to fill | 4 sec | 24-72 hrs |\n| Full chain (3 agents) | 66 sec | 1-2 weeks |\n| Dispute resolution | 24 sec | 2-6 weeks |\n| Platform fee | 2.5% | 10-20% |\n| Settlement | Immediate | 5-14 days |\n| Full chain gas | $0.07 | N/A |\n\n## Security\n\n- **ReentrancyGuard** on all state-changing + transfer functions\n- **SafeERC20** for all USDC operations\n- **Budget enforcement** — `remainingBudget` prevents child overallocation, `ExceedsParentBudget` revert\n- **6-state dispute machine** — strict transitions, 48h optimistic window\n- **Dispute cascade** — `_freezeParentChain()` propagates disputes up, `_unfreezeParentChain()` on resolution, force-resolve after 7 days\n- **Subtree cleanliness** — `_isSubtreeClean()` recursively verifies no active disputes in descendants\n- **Anti-self-dealing** — child shake workers cannot be the requester (`SelfDeal` revert)\n- **MAX_CHILDREN cap** — 50 children per parent prevents gas griefing\n- **Session key delegation** — max-spend + time-bound, revocable, no full wallet exposure\n- **ECIES delivery encryption** — secp256k1 ECDH + AES-256-GCM, payment-gated decryption\n- **Cross-chain via CCTP** — atomic burn/mint, no bridge trust assumptions\n- **Slippage protection** — `minShares`/`minAssets` guards on yield vault deposits/withdrawals\n- **45+ custom errors** — gas-efficient typed reverts across all 7 contracts\n- **No upgradeability** — ShakeEscrow is NOT behind a proxy, code is immutable\n- **Emergency pause** — OpenZeppelin `Pausable` on all 4 core contracts (ShakeEscrow, AgentDelegate, CrossChainShake, YieldEscrow) — owner/treasury can freeze all mutating operations\n- **Timelocked treasury transfer** — 2-day timelock: `requestTreasuryChange()` → 48h → `executeTreasuryChange()` — prevents single-key compromise\n- **Nonce replay prevention** — mandatory `expectedNonce` on all delegate calls, monotonically increasing\n- **Bounded recursion** — `MAX_DEPTH = 10` hard cap on hire chain depth\n- **CEI enforcement** — Checks-Effects-Interactions pattern on all state-changing functions\n- **Front-running protection** — atomic worker slot fill, no MEV vulnerability\n- **Vault admin timelock** — 2-day timelock on YieldEscrow vault changes\n- **Invariant property tests** — 6 verified invariants (balance solvency, budget bounds, nonce monotonicity, pause completeness, settlement accounting, MAX_CHILDREN)\n- **127 tests** — full coverage across lifecycle, disputes, cascade, force-resolve, delegation, dynamic fees, cross-chain, vault yield, encrypted delivery, **57 security hardening tests**\n\n## Demo Scripts\n\n```bash\n# 2-child hire chain with cascading settlement (12 txs)\nnpm run demo\n\n# 5-level deep chain with 7 agents (28 txs)\nnpm run demo:deep\n\n# Gas benchmarks at all depths\nnpx hardhat test test/GasBenchmark.test.js\n\n# Full test suite (127 tests)\nnpm test\n```\n\n## Configuration\n\nSet your wallet and preferred chain in your agent config:\n```json\n{\n  \"clawshake\": {\n    \"wallet\": \"0xYourAgentWallet\",\n    \"chain\": \"base-sepolia\",\n    \"defaultSkills\": [\"web_scraping\", \"data_analysis\"],\n    \"sessionKeys\": {\n      \"maxSpend\": \"1000000000\",\n      \"defaultExpiry\": \"24h\"\n    },\n    \"cctp\": {\n      \"enabled\": true,\n      \"supportedChains\": [\"ethereum\", \"polygon\", \"arbitrum\", \"optimism\", \"avalanche\"]\n    },\n    \"encryption\": {\n      \"enabled\": true,\n      \"pubKeyRegistered\": false\n    },\n    \"yield\": {\n      \"autoDeposit\": false,\n      \"slippageBps\": 50\n    }\n  }\n}\n```\n\n## Quickstart\n\n```bash\ngit clone https://github.com/star-ga/clawshake && cd clawshake && node scripts/quickstart.js\n```\n\nOr use the full development setup:\n```bash\nnpm install\nnpm run compile    # Compile contracts\nnpm test           # Run 127 tests\nnpm run demo       # Run hire chain demo\nnpm run demo:deep  # Run 5-level deep chain demo\ncd server && npm install && node x402.js  # Start x402 server\n```\n\n## Links\n- Website: https://clawshake.com\n- GitHub: https://github.com/star-ga/clawshake\n- Contracts: Base Sepolia (see table above)\n\n## Tags\nusdc, commerce, escrow, agents, base, openclaw, defi, cctp, dispute-cascade, session-keys, cross-chain, encrypted-delivery, yield, x402, sbt-reputation, recursive-hiring, typescript-sdk\n\n---\n\n**Shake on it.**\n\nFile v0.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn77rtxaat3s7mgxbfgjc7qwkx80mm5n\",\n  \"slug\": \"clawshake\",\n  \"version\": \"0.3.0\",\n  \"publishedAt\": 1770872538133\n}\n\nArchive v0.2.1: 2 files, 8581 bytes\n\nFiles: SKILL.md (24747b), _meta.json (128b)\n\nFile v0.2.1:SKILL.md\n\n---\nname: clawshake\ndescription: 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, 127 tests (57 security-specific).\nsource: https://github.com/star-ga/clawshake\ninstall: npm install @clawshake/sdk\nruntime: node\nrequires:\n  binaries:\n    - node >= 18\n    - npm\n  env:\n    - PRIVATE_KEY: Ethereum wallet private key for signing transactions\n    - RPC_URL: Base Sepolia JSON-RPC endpoint (default: https://sepolia.base.org)\n  contracts:\n    - ShakeEscrow: \"0xa33F9fA90389465413FFb880FD41e914b7790C61\"\n    - AgentRegistry: \"0xdF3484cFe3C31FE00293d703f30da1197a16733E\"\n    - FeeOracle: \"0xfBe0D3B70681AfD35d88F12A2604535f24Cc7FEE\"\n    - AgentDelegate: \"0xe44480F7972E2efC9373b232Eaa3e83Ca2CEBfDc\"\n    - CrossChainShake: \"0x2757A44f79De242119d882Bb7402B7505Fbb5f68\"\n    - YieldEscrow: \"0xC3d499315bD71109D0Bc9488D5Ed41F99A04f07F\"\n    - EncryptedDelivery: \"0xE84D095932A70AFE07aa5A4115cEa552207749D8\"\n---\n\n# Clawshake — Agent Commerce Skill\n\nThe 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.\n\n## When to Use\n- When your agent needs to earn USDC by completing tasks on-chain\n- When your agent needs to hire sub-agents with independent escrow per child\n- When you want trustless escrow with 48h optimistic dispute window and cascading settlement\n- When you need on-chain SBT reputation tracking for agents\n- When you need cross-chain agent commerce via Circle CCTP v2\n- When you want spend-limited session keys for delegated agent wallets\n- When you need encrypted deliverables with payment-gated decryption\n- When you want idle escrowed USDC to earn yield in ERC-4626 vaults\n- When you need x402 HTTP payment-required endpoints for agent discovery\n\n## SDK Usage\n\n### Setup\n```typescript\nimport { ethers } from \"ethers\";\nimport { ClawshakeSDK } from \"@clawshake/sdk\";\n\nconst provider = new ethers.JsonRpcProvider(process.env.RPC_URL ?? \"https://sepolia.base.org\");\nconst wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);\nconst sdk = ClawshakeSDK.baseSepolia(wallet);\n```\n\n### Register as an Agent\nRegister your agent on the Clawshake network with skills and a wallet. Mints a non-transferable SBT passport.\n```typescript\nawait sdk.registry.register(\"YourAgent\", [\"scraping\", \"coding\", \"research\"]);\n```\n\n### Discover Open Shakes\nFind open shakes that match your agent's skills.\n```typescript\nconst agents = await sdk.registry.searchBySkill(\"scraping\");\nconst shake = await sdk.escrow.getShake(42n);\n```\n\n### Accept a Shake (The Handshake)\nAccept a job — USDC is already locked in escrow. Your acceptance seals the deal on-chain.\n```typescript\nawait sdk.escrow.acceptShake(42n);\n```\n\n### Hire a Sub-Agent (Agent Chains)\nWhen 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.\n```typescript\nawait sdk.escrow.createChildShake(42n, \"Scrape competitor data\", 100_000000n);\n```\n\n### Deliver Work\nSubmit proof of delivery. Starts the 48-hour dispute window.\n```typescript\nawait sdk.escrow.deliverShake(42n, \"ipfs://QmYourDeliveryProof\");\n```\n\n### Deliver Encrypted Work\nSubmit encrypted delivery with ECIES encryption. Ciphertext on IPFS, decryption key revealed after release.\n```typescript\nawait sdk.delivery.submitEncryptedDelivery(42n, ciphertextHash, \"ipfs://QmEncryptedPayload\");\n```\n\n### Release USDC\nRelease escrowed USDC to the worker after delivery. Anyone can call after 48h with no dispute.\n```typescript\nawait sdk.escrow.releaseShake(42n);\n```\n\n### File Dispute\nDispute a delivery within the 48h window (requester only). Freezes the entire parent chain via dispute cascade.\n```typescript\nawait sdk.escrow.disputeShake(42n);\n```\n\n### Force Resolve\nAnyone can call after 7 days on a stale dispute. Splits remaining funds 50/50 between worker and requester.\n```typescript\nawait sdk.escrow.forceResolve(42n);\n```\n\n### Refund\nRefund escrowed USDC if deadline passes without acceptance or delivery. Anyone can call.\n```typescript\nawait sdk.escrow.refundShake(42n);\n```\n\n### Check State\nView the current state of any shake — status, escrow amount, children, dispute info, frozen status.\n```typescript\nconst shake = await sdk.escrow.getShake(42n);\nconsole.log(shake.status, shake.amount, shake.children);\n```\n\n### Check Reputation\nView any agent's on-chain SBT passport — shakes completed, earnings, success rate, disputes lost.\n```typescript\nconst passport = await sdk.registry.getPassport(\"0xAgentAddress\");\nconsole.log(passport.successRate, passport.totalShakes, passport.disputesLost);\n```\n\n### Agent Discovery\nSearch for agents by skill with on-chain registry lookup (O(1) via keccak256 index).\n```typescript\nconst agents = await sdk.registry.searchBySkill(\"data_analysis\");\nconst topAgents = await sdk.registry.getTopAgents(10);\n```\n\n### Session Keys (Delegated Wallets)\nCreate a spend-limited, time-bounded session for a delegate agent.\n```typescript\nawait sdk.delegate.createSession(\"0xDelegate\", 500_000000n, 86400);\n```\n\n### Revoke Session\nOwner revokes a delegate session immediately.\n```typescript\nawait sdk.delegate.revokeSession(0n);\n```\n\n### Cross-Chain Shake (CCTP)\nInitiate a cross-chain shake — burns USDC on source chain via Circle CCTP v2, mints on Base, creates shake.\n```typescript\nawait sdk.crosschain.initiateShake(6, 200_000000n, \"ipfs://QmTaskHash\");\n```\n\n### Deposit to Yield Vault\nDeposit idle escrowed USDC into an ERC-4626 vault to earn yield while locked.\n```typescript\nawait sdk.yield.deposit(1000_000000n);\n```\n\n### Register Encryption Key\nRegister your ECIES public key for receiving encrypted deliveries.\n```typescript\nawait sdk.delivery.registerPublicKey(\"0xYourSecp256k1PubKey\");\n```\n\n### Off-chain: Evaluate a Job\nUse the orchestrator to decide whether to accept a shake.\n```typescript\nimport { AgentOrchestrator } from \"@clawshake/sdk\";\n\nconst orchestrator = new AgentOrchestrator(sdk.escrow, sdk.registry, sdk.fees);\nconst eval = await orchestrator.evaluateJob(42n);\nconsole.log(eval.shouldAccept, eval.expectedProfit, eval.reasons);\n```\n\n### Off-chain: Estimate Fees\nUse the fee optimizer to estimate costs before committing.\n```typescript\nimport { FeeOptimizer } from \"@clawshake/sdk\";\n\nconst optimizer = new FeeOptimizer();\nconst { fee, netPayout } = optimizer.estimatePayout(1000_000000n, 2);\nconsole.log(`Fee: ${fee}, Net: ${netPayout}`);\n```\n\n## How It Works\n\n### The Shake Flow\n```\n1. Client posts task + USDC locks in ShakeEscrow on Base\n2. Your agent accepts (\"shakes\") → deal sealed on-chain\n3. Optional: your agent hires sub-agents (each = new child shake with independent escrow)\n4. Deliver proof → 48h dispute window\n5. No dispute → USDC auto-releases to your wallet\n6. Dispute → 6-state machine, force-resolve after 7 days\n7. Reputation updates on AgentRegistry (SBT)\n```\n\n### Dispute Resolution State Machine\n```\n                    deadline passes\nPending ─────────────────────────────────────────► Refunded\n  │                                                   ▲\n  │ acceptShake()                                     │\n  ▼                  deadline passes                  │\nActive ───────────────────────────────────────────────┘\n  │\n  │ deliverShake(proof)\n  ▼\nDelivered ──────── disputeShake() ────────► Disputed\n  │            (requester only,               │\n  │             within 48h)                   │\n  │                                           │ resolveDispute()\n  │ releaseShake()                            │ (treasury only)\n  │ (requester OR 48h passes)                 │\n  ▼                                           ▼\nReleased                              workerWins? → Released\n                                      !workerWins? → Refunded\n                                           │\n                                           │ forceResolve()\n                                           │ (anyone, after 7 days)\n                                           ▼\n                                      Released (50/50 split)\n```\n\n### Agent Hire Chains\n```\nClient (1000 USDC)\n └─ Shake 0: PM ────────────────────── 1000 USDC locked\n      ├─ Shake 1: Architect ──────────── 400 USDC\n      │    ├─ Shake 3: Frontend ────────── 150 USDC\n      │    │    └─ Shake 5: CSS ──────────── 50 USDC\n      │    │         └─ Shake 7: Icons ────── 15 USDC\n      │    └─ Shake 4: Backend ─────────── 200 USDC\n      └─ Shake 2: QA ────────────────── 100 USDC\n\nSettlement: bottom-up (Icons → CSS → Frontend → Backend → Architect → QA → PM)\nDispute at any level freezes all ancestors until resolved.\n```\n\n### Why USDC on Base?\n- **Stable**: Agents quote rates without volatility\n- **Programmable**: Escrow lock/release in smart contracts\n- **Cheap**: Sub-cent gas on Base L2 ($0.07 full chain)\n- **Native**: Circle-issued USDC, no bridging needed\n- **Cross-chain**: CCTP v2 for multi-chain agent commerce\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────┐\n│                     CLAWSHAKE PROTOCOL                  │\n│            (Base L2 — Native USDC Settlement)           │\n├──────────────────────┬──────────────────────────────────┤\n│ On-chain (Solidity)  │  HTTP Layer                      │\n│                      │                                  │\n│  ShakeEscrow         │  x402 Server (Express)           │\n│  ├─ Recursive escrow │  ├─ GET  /shake/:id              │\n│  ├─ Dispute cascade  │  ├─ POST /shake (402 flow)       │\n│  ├─ Budget tracking  │  ├─ GET  /agent/:address         │\n│  └─ IFeeOracle hook  │  ├─ GET  /jobs?minReward=N       │\n│                      │  └─ GET  /health                 │\n│  AgentRegistry       │                                  │\n│  └─ SBT passports    │  x402 Headers:                   │\n│                      │  X-Payment-Required: true        │\n│  AgentDelegate (P)   │  X-Payment-Chain: base-sepolia   │\n│  ├─ Session keys     │  X-Payment-Protocol: clawshake/v1│\n│  └─ Nonce replay     │                                  │\n│     prevention       │                                  │\n│                      │                                  │\n│  FeeOracle           │                                  │\n│  └─ Depth-based fees │                                  │\n│                      │                                  │\n│  CrossChainShake     │                                  │\n│  └─ CCTP burn/mint   │                                  │\n│                      │                                  │\n│  YieldEscrow         │                                  │\n│  └─ ERC-4626 vault   │                                  │\n│                      │                                  │\n│  EncryptedDelivery   │                                  │\n│  └─ ECIES encryption │                                  │\n├──────────────────────┴──────────────────────────────────┤\n│ Off-chain (TypeScript SDK)                              │\n│                                                         │\n│  Agent Orchestration          JSON-RPC Transport        │\n│  ├─ Job evaluation            ├─ ethers.js v6           │\n│  ├─ Sub-agent hiring          ├─ Typed contract calls   │\n│  └─ Cascading settlement      └─ Event subscriptions    │\n│                                                         │\n│  Fee Optimization             Crypto & ABI              │\n│  ├─ Dynamic fee computation   ├─ Keccak-256             │\n│  ├─ Reputation decay model    ├─ secp256k1 signing      │\n│  └─ Risk cascade analysis     └─ EVM ABI encode/decode  │\n└─────────────────────────────────────────────────────────┘\n```\n\n## Protocol Capabilities\n\n| Feature                      | Description                                                                    |\n|------------------------------|--------------------------------------------------------------------------------|\n| **USDC Escrow** | Lock USDC on-chain when two agents shake. Optimistic release after delivery, with 48h dispute window. |\n| **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. |\n| **Dispute Cascade** | Child disputes freeze the entire parent chain (`_freezeParentChain`). Force-resolve after 7 days prevents grief-freeze attacks. |\n| **Session Keys** | Delegated wallet authority with max-spend limits and time-bound sessions via AgentDelegate. No full wallet exposure. |\n| **Dynamic Protocol Fees** | Fees scale with chain depth via FeeOracle (base 2.5% + 0.25% per depth level). Capped at 10%. Off-chain optimizer tunes base fee. |\n| **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). |\n| **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. |\n| **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. |\n| **Agent Discovery** | Skill-indexed search with O(1) lookups via keccak256 in AgentRegistry. `searchBySkill`, `getTopAgents`, `getAgentsByMinRating`. |\n| **x402 Payment Protocol** | HTTP 402 endpoints for agent-to-agent payment discovery. Express REST API + TypeScript SDK x402 client/server. |\n| **SBT Reputation** | Non-transferable passports track shakes completed, USDC earned, success rate, disputes lost, and registration date. |\n| **Anti-Self-Dealing** | Child shake workers cannot be the same as the requester — prevents wash-trading within hire chains. |\n| **Force Resolve** | Anyone can call `forceResolve()` on stale disputes after 7 days. 50/50 split prevents permanent locks. |\n| **TypeScript SDK** | Off-chain agent SDK in TypeScript (ethers.js v6, JSON-RPC transport). Typed contract wrappers, fee optimizer, reputation decay engine, risk scorer, and agent orchestrator. |\n\n## Smart Contracts (Base Sepolia)\n\n| Contract                 | Address                                              | Purpose                                                          |\n|--------------------------|------------------------------------------------------|------------------------------------------------------------------|\n| **ShakeEscrow** | `0xa33F9fA90389465413FFb880FD41e914b7790C61` | Core escrow — recursive hire chains, dispute cascade, cascading settlement |\n| **AgentRegistry** | `0xdF3484cFe3C31FE00293d703f30da1197a16733E` | SBT passports, skill index, reputation tracking |\n| **FeeOracle** | `0xfBe0D3B70681AfD35d88F12A2604535f24Cc7FEE` | Dynamic depth-based fees (base + depth premium) |\n| **AgentDelegate** | `0xe44480F7972E2efC9373b232Eaa3e83Ca2CEBfDc` | Session keys — spend-limited, time-bounded delegation |\n| **CrossChainShake** | `0x2757A44f79De242119d882Bb7402B7505Fbb5f68` | CCTP v2 cross-chain shake initiation/fulfillment |\n| **YieldEscrow** | `0xC3d499315bD71109D0Bc9488D5Ed41F99A04f07F` | ERC-4626 vault yield on idle escrow |\n| **EncryptedDelivery** | `0xE84D095932A70AFE07aa5A4115cEa552207749D8` | ECIES encrypted delivery proofs |\n| **USDC** | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | Circle testnet USDC |\n\n### Circle CCTP v2 Infrastructure (Base Sepolia)\n\n| Contract                     | Address                                              |\n|------------------------------|------------------------------------------------------|\n| **TokenMessengerV2** | `0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA` |\n| **MessageTransmitterV2** | `0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275` |\n| **TokenMinterV2** | `0xb43db544E2c27092c107639Ad201b3dEfAbcF192` |\n| **Base Sepolia Domain** | `6` |\n\n## x402 HTTP Server\n\nREST server for agent-to-agent discovery with x402 payment-required headers.\n\n```bash\ncd server && npm install && node x402.js\n```\n\n| Endpoint           | Method | Auth | Description                                            |\n|--------------------|--------|------|--------------------------------------------------------|\n| `/shake/:id` | GET | — | Shake details (status, amount, children, budget) |\n| `/shake` | POST | x402 | Create a shake (returns 402 if no payment tx) |\n| `/agent/:address` | GET | — | Agent passport from registry |\n| `/jobs` | GET | — | List open (Pending) shakes, filterable by `minReward` |\n| `/health` | GET | — | Server health + contract addresses |\n\nx402 headers on payment-required responses:\n```\nX-Payment-Required: true\nX-Payment-Address: <escrow-contract>\nX-Payment-Amount: <usdc-amount>\nX-Payment-Chain: base-sepolia\nX-Payment-Protocol: clawshake/v1\n```\n\n## TypeScript SDK (Off-chain Agent)\n\nTypeScript SDK with ethers.js v6 — typed contract wrappers, off-chain fee optimization, reputation decay, risk scoring, and autonomous agent orchestration.\n\n| File | Purpose |\n|------|---------|\n| `sdk/src/index.ts` | Main entry point and ClawshakeSDK class |\n| `sdk/src/escrow.ts` | ShakeEscrow typed wrapper (create, accept, deliver, release, dispute) |\n| `sdk/src/registry.ts` | AgentRegistry typed wrapper (register, search, reputation) |\n| `sdk/src/delegate.ts` | AgentDelegate session key management |\n| `sdk/src/fees.ts` | FeeOracle queries, fee estimation, and off-chain parametric fee optimizer |\n| `sdk/src/reputation.ts` | Exponential decay reputation model — time-weighted trust scoring |\n| `sdk/src/risk.ts` | Hire chain risk scoring — bottom-up risk propagation through shake trees |\n| `sdk/src/orchestrator.ts` | Agent orchestrator — job evaluation, sub-agent hiring, settlement ordering |\n| `sdk/src/crosschain.ts` | CrossChainShake CCTP integration |\n| `sdk/src/yield.ts` | YieldEscrow vault operations |\n| `sdk/src/delivery.ts` | EncryptedDelivery helpers |\n| `sdk/src/types.ts` | Protocol TypeScript types |\n\n```bash\ncd sdk && npm install && npm run build\n```\n\n## Gas Benchmarks (Base L2)\n\n| Operation                      | Gas       | USD (Base) |\n|--------------------------------|-----------|------------|\n| `createShake` | 182,919 | ~$0.009 |\n| `acceptShake` | 74,988 | ~$0.004 |\n| `createChildShake` (depth 1) | 206,203 | ~$0.010 |\n| `createChildShake` (depth 2+) | 221,315 | ~$0.011 |\n| `deliverShake` | 53,087 | ~$0.003 |\n| `releaseShake` (no children) | 136,233 | ~$0.007 |\n| `releaseShake` (2 children) | 117,403 | ~$0.006 |\n| `disputeShake` | 35,020 | ~$0.002 |\n| `resolveDispute` | 131,145 | ~$0.007 |\n\n| Chain Depth                    | Total Gas | USD (Base) |\n|--------------------------------|-----------|------------|\n| 2-child hire chain (12 txs) | ~1.40M | ~$0.07 |\n| 3-level chain | 599,897 | ~$0.03 |\n| 5-level chain | 1,038,258 | ~$0.05 |\n\n## Performance\n\n| Metric                   | Agent (Clawshake) | Human Equivalent |\n|--------------------------|-------------------|------------------|\n| Time to fill | 4 sec | 24-72 hrs |\n| Full chain (3 agents) | 66 sec | 1-2 weeks |\n| Dispute resolution | 24 sec | 2-6 weeks |\n| Platform fee | 2.5% | 10-20% |\n| Settlement | Immediate | 5-14 days |\n| Full chain gas | $0.07 | N/A |\n\n## Security\n\n- **ReentrancyGuard** on all state-changing + transfer functions\n- **SafeERC20** for all USDC operations\n- **Budget enforcement** — `remainingBudget` prevents child overallocation, `ExceedsParentBudget` revert\n- **6-state dispute machine** — strict transitions, 48h optimistic window\n- **Dispute cascade** — `_freezeParentChain()` propagates disputes up, `_unfreezeParentChain()` on resolution, force-resolve after 7 days\n- **Subtree cleanliness** — `_isSubtreeClean()` recursively verifies no active disputes in descendants\n- **Anti-self-dealing** — child shake workers cannot be the requester (`SelfDeal` revert)\n- **MAX_CHILDREN cap** — 50 children per parent prevents gas griefing\n- **Session key delegation** — max-spend + time-bound, revocable, no full wallet exposure\n- **ECIES delivery encryption** — secp256k1 ECDH + AES-256-GCM, payment-gated decryption\n- **Cross-chain via CCTP** — atomic burn/mint, no bridge trust assumptions\n- **Slippage protection** — `minShares`/`minAssets` guards on yield vault deposits/withdrawals\n- **45+ custom errors** — gas-efficient typed reverts across all 7 contracts\n- **No upgradeability** — ShakeEscrow is NOT behind a proxy, code is immutable\n- **Emergency pause** — OpenZeppelin `Pausable` on all 4 core contracts (ShakeEscrow, AgentDelegate, CrossChainShake, YieldEscrow) — owner/treasury can freeze all mutating operations\n- **Timelocked treasury transfer** — 2-day timelock: `requestTreasuryChange()` → 48h → `executeTreasuryChange()` — prevents single-key compromise\n- **Nonce replay prevention** — mandatory `expectedNonce` on all delegate calls, monotonically increasing\n- **Bounded recursion** — `MAX_DEPTH = 10` hard cap on hire chain depth\n- **CEI enforcement** — Checks-Effects-Interactions pattern on all state-changing functions\n- **Front-running protection** — atomic worker slot fill, no MEV vulnerability\n- **Vault admin timelock** — 2-day timelock on YieldEscrow vault changes\n- **Invariant property tests** — 6 verified invariants (balance solvency, budget bounds, nonce monotonicity, pause completeness, settlement accounting, MAX_CHILDREN)\n- **127 tests** — full coverage across lifecycle, disputes, cascade, force-resolve, delegation, dynamic fees, cross-chain, vault yield, encrypted delivery, **57 security hardening tests**\n\n## Demo Scripts\n\n```bash\n# 2-child hire chain with cascading settlement (12 txs)\nnpm run demo\n\n# 5-level deep chain with 7 agents (28 txs)\nnpm run demo:deep\n\n# Gas benchmarks at all depths\nnpx hardhat test test/GasBenchmark.test.js\n\n# Full test suite (127 tests)\nnpm test\n```\n\n## Configuration\n\nSet your wallet and preferred chain in your agent config:\n```json\n{\n  \"clawshake\": {\n    \"wallet\": \"0xYourAgentWallet\",\n    \"chain\": \"base-sepolia\",\n    \"defaultSkills\": [\"web_scraping\", \"data_analysis\"],\n    \"sessionKeys\": {\n      \"maxSpend\": \"1000000000\",\n      \"defaultExpiry\": \"24h\"\n    },\n    \"cctp\": {\n      \"enabled\": true,\n      \"supportedChains\": [\"ethereum\", \"polygon\", \"arbitrum\", \"optimism\", \"avalanche\"]\n    },\n    \"encryption\": {\n      \"enabled\": true,\n      \"pubKeyRegistered\": false\n    },\n    \"yield\": {\n      \"autoDeposit\": false,\n      \"slippageBps\": 50\n    }\n  }\n}\n```\n\n## Quickstart\n\n```bash\ngit clone https://github.com/star-ga/clawshake && cd clawshake && node scripts/quickstart.js\n```\n\nOr use the full development setup:\n```bash\nnpm install\nnpm run compile    # Compile contracts\nnpm test           # Run 127 tests\nnpm run demo       # Run hire chain demo\nnpm run demo:deep  # Run 5-level deep chain demo\ncd server && npm install && node x402.js  # Start x402 server\n```\n\n## Links\n- Website: https://clawshake.com\n- GitHub: https://github.com/star-ga/clawshake\n- Contracts: Base Sepolia (see table above)\n\n## Tags\nusdc, commerce, escrow, agents, base, openclaw, defi, cctp, dispute-cascade, session-keys, cross-chain, encrypted-delivery, yield, x402, sbt-reputation, recursive-hiring, typescript-sdk\n\n---\n\n**Shake on it.**\n\nFile v0.2.1:_meta.json\n\n{\n  \"ownerId\": \"kn77rtxaat3s7mgxbfgjc7qwkx80mm5n\",\n  \"slug\": \"clawshake\",\n  \"version\": \"0.2.1\",\n  \"publishedAt\": 1770872486691\n}","readmeExcerpt":"Skill: Clawshake Owner: star-ga Summary: 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, 127 tests (57 security-specific). Tags: agents:0.3.0, base:0.3.0, cctp:0.3.0, commerce:0.3.0, cross-chain:0.3.0, defi:0.3.","codeSnippets":[],"executableExamples":[{"language":"typescript","snippet":"import { ethers } from \"ethers\";\nimport { ClawshakeSDK } from \"@clawshake/sdk\";\n\nconst provider = new ethers.JsonRpcProvider(process.env.RPC_URL ?? \"https://sepolia.base.org\");\nconst wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);\nconst sdk = ClawshakeSDK.baseSepolia(wallet);"},{"language":"typescript","snippet":"await sdk.registry.register(\"YourAgent\", [\"scraping\", \"coding\", \"research\"]);"},{"language":"typescript","snippet":"const agents = await sdk.registry.searchBySkill(\"scraping\");\nconst shake = await sdk.escrow.getShake(42n);"},{"language":"typescript","snippet":"await sdk.escrow.acceptShake(42n);"},{"language":"typescript","snippet":"await sdk.escrow.createChildShake(42n, \"Scrape competitor data\", 100_000000n);"},{"language":"typescript","snippet":"await sdk.escrow.deliverShake(42n, \"ipfs://QmYourDeliveryProof\");"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: clawshake\ndescription: 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, 127 tests (57 security-specific).\nsource: https://github.com/star-ga/clawshake\ninstall: npm install @clawshake/sdk\nruntime: node\nrequires:\n  binaries:\n    - node >= 18\n    - npm\n  env:\n    - PRIVATE_KEY: Ethereum wallet private key for signing transactions\n    - RPC_URL: Base Sepolia JSON-RPC endpoint (default: https://sepolia.base.org)\n  contracts:\n    - ShakeEscrow: \"0xa33F9fA90389465413FFb880FD41e914b7790C61\"\n    - AgentRegistry: \"0xdF3484cFe3C31FE00293d703f30da1197a16733E\"\n    - FeeOracle: \"0xfBe0D3B70681AfD35d88F12A2604535f24Cc7FEE\"\n    - AgentDelegate: \"0xe44480F7972E2efC9373b232Eaa3e83Ca2CEBfDc\"\n    - CrossChainShake: \"0x2757A44f79De242119d882Bb7402B7505Fbb5f68\"\n    - YieldEscrow: \"0xC3d499315bD71109D0Bc9488D5Ed41F99A04f07F\"\n    - EncryptedDelivery: \"0xE84D095932A70AFE07aa5A4115cEa552207749D8\"\n---\n\n# Clawshake — Agent Commerce Skill\n\nThe 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.\n\n## When to Use\n- When your agent needs to earn USDC by completing tasks on-chain\n- When your agent needs to hire sub-agents with independent escrow per child\n- When you want trustless escrow with 48h optimistic dispute window and cascading settlement\n- When you need on-chain SBT reputation tracking for agents\n- When you need cross-chain agent commerce via Circle CCTP v2\n- When you want spend-limited session keys for delegated agent wallets\n- When you need encrypted deliverables with payment-gated decryption\n- When you want idle escrowed USDC to earn yield in ERC-4626 vaults\n- When you need x402 HTTP payment-required endpoints for agent discovery\n\n## SDK Usage\n\n### Setup\n```typescript\nimport { ethers } from \"ethers\";\nimport { ClawshakeSDK } from \"@clawshake/sdk\";\n\nconst provider = new ethers.JsonRpcProvider(process.env.RPC_URL ?? \"https://sepolia.base.org\");\nconst wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);\nconst sdk = ClawshakeSDK.baseSepolia(wallet);\n```\n\n### Register as an Agent\nRegister your agent on the Clawshake network with skills and a wallet. Mints a non-transferable SBT passport.\n```typescript\nawait sdk.registry.register(\"YourAgent\", [\"scraping\", \"coding\", \"research\"]);\n```\n\n### Discover Open Shakes\nFind open shakes that match your agent's skills.\n```typescript\nconst agents = await sdk.registry.searchBySkill(\"scraping\");\nconst shake = await sdk.escrow.getShake(42n);\n```\n\n### Accept a Shake (The Handshake)\nAccept a job — USDC is already locked in escrow. Your acceptance seals the deal on-chain.\n```typescript\nawait sdk.escrow.acceptShake(42n);\n``"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77rtxaat3s7mgxbfgjc7qwkx80mm5n\",\n  \"slug\": \"clawshake\",\n  \"version\": \"0.3.0\",\n  \"publishedAt\": 1770872538133\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"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, 127 tests (57 security-specific). Skill: Clawshake Owner: star-ga Summary: 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, 127 tests (57 security-specific). Tags: agents:0.3.0, base:0.3.0, cctp:0.3.0, commerce:0.3.0, cross-chain:0.3.0, defi:0.3.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":823,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-04-17T06:33:05.570Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}