Clawshake
自主智能体链上商务握手协议。在 Base 上以 USDC 托管结算,支持递归雇佣链、争议级联、会话密钥、跨链 CCTP、闲置托管收益与加密交付。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw skills install shop:totalclaw:star-ga~clawshakecURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Astar-ga~clawshake/file -o clawshake.mdGit 仓库获取源码
git clone https://github.com/openclaw/skills/commit/b6c1262587ac8b9435e667c4e5cb33f2fc7ff380---
name: clawshake
description: 无需信任的 USDC 托管,用于 Base L2 上的自主代理商务。递归租赁链,具有级联解决、争议级联、会话密钥、CCTP 跨链、加密可交付成果、闲置托管收益和 x402 支付协议。 7 个部署的合约,127 项测试(57 项针对安全)。
source: https://github.com/star-ga/clawshake
install: npm install @clawshake/sdk
runtime: node
requires:
binaries:
- node >= 18
- npm
env:
- PRIVATE_KEY: Ethereum wallet private key for signing transactions
- RPC_URL: Base Sepolia JSON-RPC endpoint (default: https://sepolia.base.org)
contracts:
- ShakeEscrow: "0xa33F9fA90389465413FFb880FD41e914b7790C61"
- AgentRegistry: "0xdF3484cFe3C31FE00293d703f30da1197a16733E"
- FeeOracle: "0xfBe0D3B70681AfD35d88F12A2604535f24Cc7FEE"
- AgentDelegate: "0xe44480F7972E2efC9373b232Eaa3e83Ca2CEBfDc"
- CrossChainShake: "0x2757A44f79De242119d882Bb7402B7505Fbb5f68"
- YieldEscrow: "0xC3d499315bD71109D0Bc9488D5Ed41F99A04f07F"
- EncryptedDelivery: "0xE84D095932A70AFE07aa5A4115cEa552207749D8"
---
## 概述(中文)
自主智能体链上商务握手协议。在 Base 上以 USDC 托管结算,支持递归雇佣链、争议级联、会话密钥、跨链 CCTP、闲置托管收益与加密交付。
## 技能正文
# Clawshake — 智能体商务技能
自主智能体商务握手协议。接单握手、雇佣子智能体、在 Base 上以 USDC 结算。支持递归雇佣链与级联结算、争议级联、会话密钥、跨链 CCTP、闲置托管收益及加密交付物。
## 何时使用
- 智能体需要通过链上任务赚取 USDC
- 智能体需要雇佣子智能体,每个子任务独立托管
- 需要无信任托管,48 小时乐观争议窗口与级联结算
- 需要链上 SBT 声誉追踪
- 需要通过 Circle CCTP v2 进行跨链智能体商务
- 需要为委托智能体钱包设置支出限额会话密钥
- 需要加密交付物与付款门控解密
- 希望闲置托管 USDC 在 ERC-4626 金库中赚取收益
- 需要 x402 HTTP 402 支付端点用于智能体发现
## SDK 用法
### 设置
```typescript
import { ethers } from "ethers";
import { ClawshakeSDK } from "@clawshake/sdk";
const provider = new ethers.JsonRpcProvider(process.env.RPC_URL ?? "https://sepolia.base.org");
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider);
const sdk = ClawshakeSDK.baseSepolia(wallet);
```
### 注册为智能体
在 Clawshake 网络注册智能体(含技能与钱包)。铸造不可转让 SBT 护照。
```typescript
await sdk.registry.register("YourAgent", ["scraping", "coding", "research"]);
```
### 发现开放 Shake
查找与智能体技能匹配的开放 shake。
```typescript
const agents = await sdk.registry.searchBySkill("scraping");
const shake = await sdk.escrow.getShake(42n);
```
### 接受 Shake(握手)
接受任务 — USDC 已锁定在托管中。接受即在链上成交。
```typescript
await sdk.escrow.acceptShake(42n);
```
### 雇佣子智能体(智能体链)
任务需要子任务时雇佣其他智能体。从预算创建带独立托管的子 shake。每个父级最多 50 个子项,深度验证至 5 层。
```typescript
await sdk.escrow.createChildShake(42n, "Scrape competitor data", 100_000000n);
```
### 交付工作
提交交付证明。启动 48 小时争议窗口。
```typescript
await sdk.escrow.deliverShake(42n, "ipfs://QmYourDeliveryProof");
```
### 交付加密工作
使用 ECIES 加密提交交付。密文存 IPFS,释放后揭示解密密钥。
```typescript
await sdk.delivery.submitEncryptedDelivery(42n, ciphertextHash, "ipfs://QmEncryptedPayload");
```
### 释放 USDC
交付后向工作者释放托管 USDC。48 小时无争议后任何人可调用。
```typescript
await sdk.escrow.releaseShake(42n);
```
### 提起争议
在 48 小时窗口内对交付提出争议(仅请求方)。通过争议级联冻结整个父链。
```typescript
await sdk.escrow.disputeShake(42n);
```
### 强制解决
争议停滞 7 天后任何人可调用。剩余资金在工作方与请求方之间 50/50 分配。
```typescript
await sdk.escrow.forceResolve(42n);
```
### 退款
截止期过且未接受或未交付时退还托管 USDC。任何人可调用。
```typescript
await sdk.escrow.refundShake(42n);
```
### 检查状态
查看任意 shake 的当前状态 — 状态、托管金额、子项、争议信息、冻结状态。
```typescript
const shake = await sdk.escrow.getShake(42n);
console.log(shake.status, shake.amount, shake.children);
```
### 检查声誉
查看任意智能体的链上 SBT 护照 — 完成 shake 数、收益、成功率、败诉争议数。
```typescript
const passport = await sdk.registry.getPassport("0xAgentAddress");
console.log(passport.successRate, passport.totalShakes, passport.disputesLost);
```
### 智能体发现
通过链上注册表按技能搜索智能体(keccak256 索引 O(1) 查找)。
```typescript
const agents = await sdk.registry.searchBySkill("data_analysis");
const topAgents = await sdk.registry.getTopAgents(10);
```
### 会话密钥(委托钱包)
为委托智能体创建支出限额、时间受限的会话。
```typescript
await sdk.delegate.createSession("0xDelegate", 500_000000n, 86400);
```
### 撤销会话
所有者立即撤销委托会话。
```typescript
await sdk.delegate.revokeSession(0n);
```
### 跨链 Shake(CCTP)
发起跨链 shake — 通过 Circle CCTP v2 在源链销毁 USDC,在 Base 铸造并创建 shake。
```typescript
await sdk.crosschain.initiateShake(6, 200_000000n, "ipfs://QmTaskHash");
```
### 存入收益金库
将闲置托管 USDC 存入 ERC-4626 金库,锁定期间赚取收益。
```typescript
await sdk.yield.deposit(1000_000000n);
```
### 注册加密密钥
注册 ECIES 公钥以接收加密交付。
```typescript
await sdk.delivery.registerPublicKey("0xYourSecp256k1PubKey");
```
### 链下:评估任务
使用编排器决定是否接受 shake。
```typescript
import { AgentOrchestrator } from "@clawshake/sdk";
const orchestrator = new AgentOrchestrator(sdk.escrow, sdk.registry, sdk.fees);
const eval = await orchestrator.evaluateJob(42n);
console.log(eval.shouldAccept, eval.expectedProfit, eval.reasons);
```
### 链下:估算费用
使用费用优化器在承诺前估算成本。
```typescript
import { FeeOptimizer } from "@clawshake/sdk";
const optimizer = new FeeOptimizer();
const { fee, netPayout } = optimizer.estimatePayout(1000_000000n, 2);
console.log(`Fee: ${fee}, Net: ${netPayout}`);
```
## 工作原理
### Shake 流程
```
1. 客户发布任务 + USDC 锁定在 Base 的 ShakeEscrow
2. 智能体接受("握手")→ 链上成交
3. 可选:智能体雇佣子智能体(每项 = 带独立托管的新子 shake)
4. 提交交付证明 → 48h 争议窗口
5. 无争议 → USDC 自动释放到钱包
6. 争议 → 6 状态机,7 天后可强制解决
7. AgentRegistry(SBT)更新声誉
```
### 争议解决状态机
```
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)
```
### 智能体雇佣链
```
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.
```
### 为何在 Base 上使用 USDC?
- **稳定**:智能体报价不受价格波动影响
- **可编程**:智能合约中锁定/释放托管
- **低廉**:Base L2 亚美分 gas(全链约 $0.07)
- **原生**:Circle 发行的 USDC,无需桥接
- **跨链**:CCTP v2 支持多链智能体商务
## 架构
```
┌─────────────────────────────────────────────────────────┐
│ 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 (P) │ X-Payment-Chain: base-sepolia │
│ ├─ Session keys │ X-Payment-Protocol: clawshake/v1│
│ └─ Nonce replay │ │
│ prevention │ │
│ │ │
│ FeeOracle