AgentVaultAgent 原生的非托管链上支付系统,基于 Monad。Monad Blitz 杭州黑客松 — Agentic Payment 赛道English | 中文一键部署(Claude Code / Cursor / AI Agent)适用于 Claude Code / Cursor / Windsurf / 任何 MCP 兼容 Agent前置要求:node >=18、pnpm、一个持有 MON(用于 Gas)的 Monad 测试网钱包第一步:克隆、安装、部署# 克隆 & 安装依赖
git clone https://github.com/zabr1314/hermes-pay.git agentvault && cd agentvault
pnpm install
# 安装 Monad Foundry(已装过可跳过)
curl -L https://foundry.category.xyz | bash && source ~/.zshrc && foundryup --network monad
# 配置环境变量 — OWNER_PRIVATE_KEY 必填
cp .env.example .env
# 编辑 .env,填入你的 OWNER_PRIVATE_KEY
# 部署合约到 Monad 测试网(自动将合约地址写入 .env)
./scripts/deploy.sh
# 编译所有包
pnpm build第二步:接入你的 AgentClaude Code:claude mcp add agentvault node $(pwd)/packages/mcp-server/dist/index.js或手动添加到 ~/.claude.json:{
"mcpServers": {
"agentvault": {
"command": "node",
"args": ["/你的路径/agentvault/packages/mcp-server/dist/index.js"],
"env": {
"OWNER_PRIVATE_KEY": "0x你的私钥",
"AGENTVAULT_ADDRESS": "0x合约地址"
}
}
}
}Cursor: Settings → MCP → 添加服务器,Command 填 node,Args 指向 packages/mcp-server/dist/index.js其他 MCP 兼容 Agent: 使用相同的 stdio 配置格式。第三步:验证 & 使用重启你的 Agent,然后试试:> 帮我设置钱包
> 创建 session key,单笔限 5 USDC
> 支付 0.001 MON 给 0x...dead 用于测试
> 查看支付历史一键启动所有服务./scripts/start-all.sh启动后:Dashboard:http://localhost:3000 — 可视化管理面板Merchant Server (x402):http://localhost:4020 — 付费 API 示例MCP Server:由 Agent 自动管理(stdio 模式)项目简介AgentVault 让 AI Agent 在用户授权范围内自主完成链上支付:特性说明Session Key给 Agent 发放受限临时密钥:有效期、单笔上限、每日预算、Token 锁定Policy EngineYAML 可配置策略引擎:分类限制、收款方黑白名单、超阈值人工确认Audit Trail每笔支付生成结构化审计日志:触发者、任务上下文、策略命中、风险等级x402 SupportHTTP 402 机器支付协议 — Agent 调用付费 API 自动签名支付MCP Integration12 个 MCP Tools + 3 个 Resources,直接集成 Claude Code / Cursor 等DashboardNext.js 可视化面板:余额、Session Key、审计日志、策略管理Non-custodial用户自持资产,Agent 无法接触真实私钥,用户可随时撤销权限系统架构 ┌──────────────────────────────┐
│ AI Agent (Claude Code) │
└──────────┬───────────────────┘
│ MCP (stdio)
▼
┌──────────┐ ┌─────────────────────────────┐ ┌──────────────┐
│ Dashboard │ │ MCP Server │ │ Merchant │
│ (Next.js) │ │ 12 tools + 3 resources │ │ Server │
│ :3000 │ │ Policy Engine + Audit Log │ │ (x402) │
└─────┬─────┘ └──────────┬──────────────────┘ │ :4020 │
│ │ └──────┬───────┘
│ ┌──────────▼──────────┐ │
└──────────► @agentvault/sdk ◄───────────────────┘
│ Wallet + SessionKey │
│ Transaction Builder │
└──────────┬──────────┘
│ JSON-RPC
▼
┌──────────────────────┐
│ Monad Blockchain │
│ AgentVault.sol │
│ Chain ID: 10143 │
└──────────────────────┘目录结构agentvault/
├── contracts/ # Solidity 智能合约 (Foundry)
│ ├── src/AgentVault.sol # 核心合约 (Session Key + 限额 + 暂停)
│ ├── test/AgentVault.t.sol # 30 个 Forge 测试
│ └── script/Deploy.s.sol # 部署脚本
│
├── packages/
│ ├── sdk/ # TypeScript SDK (@agentvault/sdk)
│ │ └── src/
│ │ ├── wallet.ts # 钱包管理
│ │ ├── session-key.ts # Session Key 生命周期
│ │ ├── transaction.ts # 交易构建
│ │ ├── policy-engine.ts# YAML 策略引擎
│ │ ├── audit.ts # SQLite 审计日志
│ │ └── x402-client.ts # x402 付费 API 客户端
│ │
│ ├── mcp-server/ # MCP Server (Claude Code 集成)
│ │ └── src/
│ │ ├── index.ts # 服务入口
│ │ └── tools/ # 12 个 MCP Tools
│ │
│ ├── frontend/ # Dashboard (Next.js)
│ │ └── app/ # 余额/Session/审计/策略 面板
│ │
│ └── merchant-server/ # x402 Merchant Server (Express)
│ └── src/ # 付费 API 示例 (天气/计算/部署)
│
├── demo/
│ ├── e2e-demo.ts # 链上端到端演示
│ └── local-test.ts # 本地验证 (无需链)
│
├── scripts/
│ ├── deploy.sh # 一键部署合约
│ └── start-all.sh # 一键启动所有服务
│
├── .env.example # 统一环境变量模板
├── package.json # pnpm monorepo root
└── pnpm-workspace.yaml环境变量变量必填说明OWNER_PRIVATE_KEY是钱包私钥AGENTVAULT_ADDRESS是合约地址(deploy.sh 自动填入)MONAD_RPC_URL否默认 https://testnet-rpc.monad.xyzAGENT_VAULT_AGENT_ID否Agent 标识,用于审计日志,默认 unknownMERCHANT_PORT否Merchant Server 端口,默认 4020MERCHANT_WALLET_PRIVATE_KEY否商户钱包私钥,默认同 OWNERKEYSTORE_PASSWORD否本地密钥存储加密密码测试# 合约测试(30 tests,零配置)
cd contracts && forge test -v
# SDK 测试(27 tests,零配置)
pnpm test:sdk
# 本地集成验证(13 checks,零配置,无需链)
pnpm exec tsx demo/local-test.ts
# 链上端到端(需要 .env 配置)
source .env && pnpm exec tsx demo/e2e-demo.tsMCP ToolsTool说明setup_wallet初始化/导入钱包,部署合约get_balance查询 MON + USDC 余额create_session创建受限 Session Keyrevoke_session撤销 Session Keylist_sessions列出所有 Session Keymake_payment策略检查 + 链上支付 + 审计pay_for_apix402 付费 API 调用(带策略检查)get_policy查看当前策略update_policy修改策略规则get_history查询审计日志get_spending_summary花费统计emergency_pause紧急暂停/恢复安全模型完全信任:链上合约逻辑(代码即法律)
部分信任:链下 Policy Engine(可被绕过,但有链上限额兜底)
零信任: Agent 本身(Agent 可以尝试任何操作,合约负责拦截)Owner Key — 全权控制,AES-256-GCM 加密存储Session Key — 临时受限,链上强制执行限额allowedToken — 每个 Session Key 锁定一种 TokenPolicy Engine — 链下二次检查 + 人工确认流程技术栈Solidity 0.8.28 + Foundry | TypeScript + Viem | MCP SDK | Next.js 14 | Express | SQLite | Monad Testnet (10143)LicenseMIT