Monad Testnet

AI 能花钱
但不能乱花。

Agent 原生支付操作系统。Session Key 链上策略强制、三级审批、Telegram 通知、TOTP 双因素认证、Passkey 生物识别、完整审计追踪。

$ curl -fsSL https://raw.githubusercontent.com/rumpsmcken-sudo/wallet/main/install.sh | bash
9策略检查
3审批层级
15+CLI 命令
400ms出块时间
把这段话给你的 AI

粘贴到 Claude Code、Codex、Manus 或任何 AI Agent 中。AI 会自动安装、配置,并学会使用 Agent Wallet 的所有功能。

Agent Wallet 系统提示词

v0.1.0
## Agent Wallet - AI Agent 支付工具 你现在可以使用 `agent-wallet`,这是一个让你在 Monad 区块链上安全支付的 CLI 工具。请安装它并记住所有用法。 ### 第 1 步:安装 ```bash curl -fsSL https://raw.githubusercontent.com/rumpsmcken-sudo/wallet/main/install.sh | bash ``` **如果安装失败**,执行以下步骤: 1. 捕获完整错误输出。 2. 收集环境信息:`node --version`、`npm --version`、`uname -a`(Windows 用 `systeminfo`)。 3. 检查 GitHub CLI 是否可用:`which gh && gh auth status`。 4. 如果 `gh` 已认证,询问用户:"安装失败了。我可以自动提交一个 GitHub Issue 帮助开发者修复,可以吗?" 5. 如果用户同意,创建 Issue: ``` gh issue create --repo rumpsmcken-sudo/wallet \ --title "[Install Bug] <一行错误摘要>" \ --body "$(cat <<'EOF' ## 环境信息 - **操作系统**: <uname -a 或 systeminfo 输出> - **Node.js**: <node --version 输出> - **npm**: <npm --version 输出> - **Shell**: <bash/zsh/powershell + 版本> - **Agent**: <Claude Code / Codex / Manus / 其他> ## 安装命令 \`\`\`bash curl -fsSL https://raw.githubusercontent.com/rumpsmcken-sudo/wallet/main/install.sh | bash \`\`\` ## 错误输出 \`\`\` <粘贴完整 npm 错误输出,最多 200 行> \`\`\` ## 失败前的操作 <描述安装前做了什么,如:全新终端、初始化后、等等> ## 其他上下文 <代理网络、磁盘空间、权限等相关信息> --- *由 AI Agent 通过 `gh issue create` 自动提交* EOF )" ``` 6. 如果 `gh` 不可用或未认证,向用户展示错误信息,建议手动到 https://github.com/rumpsmcken-sudo/wallet/issues 创建 Issue,附上以上信息。 ### 第 2 步:初始化 ```bash agent-wallet init ``` 这会创建 `~/.agent-wallet/` 目录,包含配置、Session Key、待审批和审计日志。 ### 第 3 步:授权(一次性 — 用户用自己的钱包签名) 自己生成一个随机密码(不要问用户要)。这个密码是加密你本地 Session Key 用的,用户不需要知道。 ```bash agent-wallet setup --password $(openssl rand -hex 16) --json ``` 这会打开浏览器,用户连接 MetaMask 并授权一个 Session Key 给你。你永远不会接触 Owner 私钥 — 私钥始终在 MetaMask 中。 告诉用户:"我需要钱包授权才能进行支付。浏览器窗口会自动打开,请连接 MetaMask 并点击授权。你的私钥不会离开你的钱包。" 如果 `--json` 输出显示 `"status":"already_configured"`,跳过此步骤。记住你生成的密码 — 后续命令的 `--password` 参数需要用到。 授权完成后,立即请用户注册 Passkey 用于安全的支付审批: 告诉用户:"请设置 Passkey(指纹/面容ID)以确保支付审批的安全性。浏览器窗口会自动打开。" ```bash agent-wallet auth setup-passkey ``` 这是必需的 — 没有 Passkey,用户无法安全审批大额支付。 ### 第 4 步:记住这些命令 **核心支付流程:** - `agent-wallet pay --to <地址> --amount <金额> --reason "<原因>" --token <代币地址> --session-key <密钥> --password <密码> --json` - `--reason` 是必填项,你必须解释每笔支付的原因 - 金额单位是 base units(1 USDC = 1000000,6 位小数) - 返回 JSON:`{"success":true,"txHash":"0x..."}` 或 `{"error":"DENY_AMOUNT_LIMIT","maxAllowed":"5000000"}` **Session Key 管理:** - `agent-wallet session create --label <名称> --password <密码> --max-per-tx 5000000 --max-daily 20000000 --duration 86400 --allowed-tokens <代币地址> --json` - 创建有消费限制的临时密钥 - `agent-wallet session create --label <名称> --request-only --reason "我需要支付权限来..." --password <密码> --json` - Agent 发起模式:创建待用户审批的请求 - `agent-wallet session list --json` - 列出所有 Session Key - `agent-wallet session revoke --label <名称>` - 撤销密钥 **审批流程(三级):** - 金额 < autoApproveBelow:自动执行 - 金额 < confirmBelow:返回 `APPROVAL_REQUIRED`,附带 `approvalId` - 金额 >= confirmBelow:需要手动审批 重要:你不能自己审批支付!只有人类用户可以审批: - Telegram:用户在手机上点击 ✅ 按钮 - CLI + Passkey:`agent-wallet approve --approve <id> --passkey`(需要生物识别) 你的工作是等待用��决定: - `agent-wallet approve --wait <id> --json`(每 2 秒轮询,5 分钟超时) 当收到 `APPROVAL_REQUIRED` 时,告诉用户: "我需要您批准 X USDC 的支付,用途是 [原因]。请在 Telegram 中确认或执行:agent-wallet approve --approve <id> --passkey" 然后等待:`agent-wallet approve --wait <id> --json` 审批通过后:`agent-wallet pay ... --approval-id <id> --json` **策略配置:** - `agent-wallet policy set --auto-approve-below 3000000 --confirm-below 10000000` - 设置阈值 - `agent-wallet policy show --json` - 查看当前策略 **x402 机器支付(API 购买):** - `agent-wallet fetch <url> --session-key <密钥> --password <密码> --json` - 自动处理 HTTP 402 Payment Required - 签名支付,重发请求,返回 API 数据 **监控与审计:** - `agent-wallet audit --limit 10 --json` - 查看最近支付记录 - `agent-wallet audit --verify` - 验证 hash chain 完整性 - `agent-wallet watch` - 实时支付流(用户终端) - `agent-wallet watch --telegram` - 配合 Telegram 通知 **安全(双因素认证):** - `agent-wallet totp setup --password <密码>` - 启用 TOTP 2FA - `agent-wallet totp verify <验证码> --password <密码>` - 验证 - `agent-wallet auth setup-passkey` - 注册 Passkey(指纹/Face ID) - `agent-wallet auth verify-passkey` - 生物识别验证 **紧急操作:** - `agent-wallet pause` - 冻结钱包(仅 Owner) - `agent-wallet recover --transfer-to <地址>` - 转移所有权 **余额查询:** - `agent-wallet balance --json` - 查看钱包 + Session Key 余额 ### 第 5 步:记住错误处理 支付失败时,解析 JSON 错误码并采取对应行动: - `DENY_AMOUNT_LIMIT` -> 降低金额 - `DENY_DAILY_LIMIT` -> 等明天或请用户提额 - `DENY_TARGET` -> 使用白名单内的地址 - `DENY_TOKEN` -> 使用允许的代币 - `SESSION_REVOKED` -> 权限已撤销,通知用户 - `APPROVAL_REQUIRED` -> 告诉用户去 Telegram 或 CLI 审批 - `DENY_PAUSED` -> 钱包已冻结,通知用户 ### 第 6 步:Monad 测试网配置 ``` Chain ID: 10143 RPC: https://testnet-rpc.monad.xyz USDC: 0x534b2f3A21130d7a60830c2Df862319e593943A3 MockUSDC: 0x4d16368d29fb31fc7c5bd4a9881913daadb20a89 出块时间: 400ms ``` ### 最佳实践 1. 始终使用 `--json` 获取机器可读输出 2. 始终用 `--reason` 附上有意义的支付说明 3. 自动化流程中使用 `--non-interactive` 4. 用 `--context "task:当前任务名"` 关联支付与任务 5. 先用 `session create --request-only` 向用户申请权限 6. 解析 JSON 响应,程序化处理错误 7. 需要审批时,向用户清楚展示审批 ID 8. 大额支付前先 `balance --json` 检查余额 9. 永远不要硬编码私钥 — setup 流程让私钥留在用户钱包中 10. 在任务上下文中记录所有支付行为,确保可追溯
为 Agent 设计,由人类控制

每个功能都因 Agent 而存在。离开 Agent,这些功能都没有意义。

🔑

Session Key 临时密钥

受限的临时密钥:单笔上限、日/周限额、地址白名单、自动过期。Agent 永远接触不到真正的私钥。

🛡

策略引擎

链上 9 级强制检查:时间有效性、冷却期、单笔限额、日限额、周限额、目标白名单、Token 白名单、方法白名单。无法绕过。

🤝

三级审批

小额自动执行。中大额支付必须通过 Passkey 生物识别验证。Agent 只能等待你的决定 — 无法自己批准自己的支付。

🔒

Passkey 签名审批

即使病毒/恶意软件拿到了你电脑的全部文件读写权限,也无法伪造支付审批。每次审批都是一个 WebAuthn 签名,challenge = SHA-256(支付ID + 收款方 + 金额 + 代币)。这个签名只能由你设备的安全芯片(Secure Enclave)通过指纹或面容识别产生。磁盘上没有任何文件、密钥或代码能复现它。攻击者能改任何文件、能跑任何代码,但造不出你的指纹。

📱

Telegram 通知

每笔支付实时推送。可从 Telegram 直接拒绝。审批需要在电脑上用 Passkey 确认 — Telegram 告诉你该运行什么命令。

📜

审计追踪

每笔支付记录:谁发起、给谁、多少钱、为什么、命中哪条策略、是否人工确认、交易哈希。SHA-256 哈希链防篡改。

两条轨道,一套系统

P2P 支付走 Smart Wallet 合约,API 微支付走 x402 协议。同一个 Session Key,同一套策略,同一份审计日志。

AI Agent (Claude Code / Codex / Manus)
agent-wallet pay --reason "..." --json
agent-wallet fetch <url> --json
↓ ↓
轨道 1: Smart Wallet
P2P 转账,大额支付
executeWithSessionKey()
链上策略强制执行
USDC 从合约余额扣除
轨道 2: x402 / MPP
API 微支付
EIP-712 签名
Facilitator 代付 Gas
USDC 从 Session Key EOA 扣除
↓ ↓
共享层
策略引擎(链上 9 级检查) • Session Key 管理器(注册 / 撤销 / 轮换)
审计日志(JSONL + SHA-256 哈希链) • 通知路由(Telegram + CLI + Watch)
3 分钟上手

从零到 Agent 自主支付。

安装

一行命令。支持 Mac、Linux、Windows。

curl -fsSL https://raw.githubusercontent.com/rumpsmcken-sudo/wallet/main/install.sh | bash

初始化 & 部署

创建配置目录,在 Monad 上部署你的钱包合约。

agent-wallet init && agent-wallet setup --private-key $KEY

创建 Session Key

给你的 AI 一把有限额、有时限的临时钥匙。

agent-wallet session create --label claude --max-per-tx 5000000 --max-daily 20000000 --duration 86400

让 Agent 支付

Agent 解释每笔花销。策略链上强制执行。你在 Telegram 上审批。

agent-wallet pay --to 0xAPI --amount 1500000 --reason "购买 API credits" --json
验证 x402 支付

安装完成后,把这段指令交给你的 AI。它会自主完成 x402 机器支付全流程验证。

x402 验证指令

LIVE
## x402 支付验证任务 你已安装 `agent-wallet`。现在对线上 x402 卖方 API 执行完整支付验证,包括自动微支付和需人类审批的大额支付。 ### 测试服务 - 卖方地址: https://x402-vendor.agent-wallet.workers.dev - 链: Monad Testnet (10143) - 代币: USDC (0x534b2f3A21130d7a60830c2Df862319e593943A3) - 收款方: 0x14469c3E7AE509A67731ffC967E128206C9B84eE ### 端点列表 | 端点 | 价格 | 审批层级 | |------|------|---------| | GET /api/weather | 0.001 USDC (1000 units) | 自动(无需审批) | | GET /api/price | 0.005 USDC (5000 units) | 自动 | | GET /api/news | 0.002 USDC (2000 units) | 自动 | | GET /api/report | 2 USDC (2000000 units) | 确认(需人类审批) | | GET /api/intel | 15 USDC (15000000 units) | 手动(最高安全层级) | | GET /api/free | 免费 | - | 默认策略:autoApproveBelow = 1 USDC,confirmBelow = 10 USDC。 三档:自动(<1)、确认(1-10)、手动(>=10)。 ### Part A:微支付(自动通过) **第 1 步:健康检查** 执行 `curl https://x402-vendor.agent-wallet.workers.dev/health`,确认服务在线。期望 `{"status":"ok","storage":"cloudflare-kv",...}`。 **第 2 步:确认 402 响应** 执行 `curl -s -w "\n%{http_code}" https://x402-vendor.agent-wallet.workers.dev/api/weather`。应返回 HTTP 402,含 `accepts` 数组。 **第 3 步:请求免费端点** 执行 `agent-wallet fetch https://x402-vendor.agent-wallet.workers.dev/api/free --session-key <你的session-key> --password $AGENT_WALLET_PASSWORD --json`。应返回 protocol "free",无支付。 **第 4 步:自动付费获取(小额)** 执行 `agent-wallet fetch https://x402-vendor.agent-wallet.workers.dev/api/weather --session-key <你的session-key> --password $AGENT_WALLET_PASSWORD --json`。 - 金额 1000 < autoApproveBelow 1000000 → 自动通过 - 签名 EIP-712,带 X-PAYMENT header 重试 - 期望:`{"protocol":"x402","data":{...},"payment":{"amount":"1000",...}}` **第 5 步:验证审计日志** 执行 `agent-wallet audit --limit 1 --json`,确认 `signatureType` 为 "x402"。 **第 6 步:检查卖方账本** 执行 `curl https://x402-vendor.agent-wallet.workers.dev/stats`,看到支付记录(KV 持久化,冷启动后不丢失)。 ### Part B:大额支付(需人类审批) **第 7 步:请求高价端点(触发审批)** 执行 `agent-wallet fetch https://x402-vendor.agent-wallet.workers.dev/api/report --session-key <你的session-key> --password $AGENT_WALLET_PASSWORD --json`。 - 金额 2000000 >= autoApproveBelow 1000000 → 需要审批 - 期望:`{"approvalRequired":true,"approvalId":"apr_xxx",...}` - 告诉用户:"我需要 2 USDC 的审批来购买高级报告。请执行:`agent-wallet approve --approve apr_xxx`" **第 8 步:人类审批** 用户执行: - `agent-wallet approve --list --json` → 看到待审批项(金额、原因、层级) - `agent-wallet approve --approve apr_xxx` → 批准 **第 9 步:审批后重新获取** 执行 `agent-wallet fetch https://x402-vendor.agent-wallet.workers.dev/api/report --session-key <你的session-key> --password $AGENT_WALLET_PASSWORD --approval-id apr_xxx --json`。 - 验证审批已通过,继续签名支付 - 期望:`{"protocol":"x402","data":{"title":"Monad Ecosystem Q1 2026 Report",...}}` ### Part C:高额支付(手动审批层级) **第 10 步:获取威胁情报(触发 manual 层级)** 执行 `agent-wallet fetch https://x402-vendor.agent-wallet.workers.dev/api/intel --session-key <你的session-key> --password $AGENT_WALLET_PASSWORD --json`。 - 金额 15000000 >= confirmBelow 10000000 → manual 层级(最高安全) - 期望:`{"approvalRequired":true,"approvalId":"apr_yyy",...}` - 告诉用户:"这是 15 USDC 的高额购买,需要手动审批。" - 同样流程:approve → 带 --approval-id 重新 fetch - 如果开启了 TOTP 2FA,审批可能需要 --otp 验证码 ### 通过标准 - [ ] /health 返回 "ok" + "cloudflare-kv" - [ ] 付费端点不带 header 返回 402 - [ ] 免费端点返回 200,protocol "free" - [ ] 小额支付(weather):自动通过,直接返回数据 - [ ] 审计日志记录 x402 支付 - [ ] 卖方 /stats 持久显示支付 - [ ] 大额支付(report):返回 approvalRequired + approvalId - [ ] approve --list 显示待审批 - [ ] approve --approve 通过审批 - [ ] --approval-id 重新 fetch 返回高级数据 - [ ] /api/intel(15 USDC):触发 manual 层级(最高安全) - [ ] 手动审批 + 重新 fetch 返回威胁情报数据 ### 失败排查 - `DENY_AMOUNT_LIMIT` → session key `--max-per-tx` 至少 15000000(覆盖 /api/intel 的 15 USDC) - `DENY_DAILY_LIMIT` → `--max-daily` 需覆盖总消费 - 没有 session key → 先创建:`agent-wallet session create --label test --max-per-tx 10000000 --max-daily 50000000 --duration 3600 --password $AGENT_WALLET_PASSWORD --json` - 审批过期 → 审批有效期 5 分钟,过期需重新执行第 7 步 - 连接失败 → 服务地址:https://x402-vendor.agent-wallet.workers.dev ### 通过 GitHub Issue 报告失败 如果某步出现非预期失败(bug,非策略拒绝): 1. 检查 `gh`:`which gh && gh auth status`。 2. 询问用户:"x402 验证遇到 bug,可以提交 Issue 吗?" 3. 如果同意: ``` gh issue create --repo rumpsmcken-sudo/wallet \ --title "[x402 Bug] <失败步骤 + 摘要>" \ --label "bug,x402" \ --body "$(cat <<'EOF' ## 失败步骤 第 <N> 步:<名称> ## 预期 vs 实际 - **预期**: <应该发生什么> - **实际**: <实际发生了什么> ## 命令与输出 \`\`\`bash <命令> \`\`\` \`\`\` <输出> \`\`\` ## 环境信息 - **OS**: <uname -a> - **Node.js**: <node --version> - **agent-wallet**: <agent-wallet --version> - **Agent**: <Claude Code / Codex / Manus / 其他> ## 上下文 - Session Key: <地址,不要泄露私钥> - 已通过步骤:<列表> --- *由 AI Agent 自动提交* EOF )" ``` 4. 如果 `gh` 不可用,引导到 https://github.com/rumpsmcken-sudo/wallet/issues