关于 D20DAO Verifiable Randomness
D20DAO 为 AI Agent 提供 Arc 上可验证的随机抽取,包括掷骰、选择和洗牌。其 MCP 服务通过 Circle Agent Wallet 付款,并返回可重放验证的证明链接。
主要功能
- 01可验证的随机抽取
- 02掷骰、范围、选择与洗牌
- 03免费查询抽取结果
- 04检查设置与支出
- 05可重放验证的证明链接
适用场景
- 01执行可验证的抽奖
- 02随机选择项目或获胜者
- 03生成骰子或抛硬币结果
MCP 相关
MCP 服务提供随机抽取、查询结果和检查设置状态的工具。每次抽取费用为 0.05 USDC,通过 Circle CLI 付款。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @d20dao/mcpD20_DAILY_LIMIT_USDCSpending cap per UTC day in USDC (default 1; 0 turns paid draws off).D20_NETWORKArc Mainnet (default) or Arc Testnet.D20_PAY_CHAINCircle CLI chain code to pay from, such as ARC or BASE (default: first funded).D20_WALLET_ADDRESSAgent wallet to pay from (default: the first one the Circle CLI lists).D20_CIRCLE_CLIPath to the Circle CLI's dist/index.js (default: circle on PATH).D20_MCP_HOMEFolder for the daily spending record (default ~/.d20dao-mcp).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| max | any | 否 | 仅适用于 range,必填:最高值,包含该值,且至少为 min。 |
| min | any | 否 | 仅适用于 range,必填:最低值,包含该值。 |
| seed | string | 否 | 绑定到此抽取链上的上下文,例如 "raffle-7 round 2"(最多 64 字节)。每次单独抽取都使用新的种子。若要承诺使用某个项目列表,请将其哈希放在此处。 |
| count | integer | 否 | dice:掷骰次数,1 到 128(默认值为 1)。chooseMany:不重复抽取的数量,必填。 |
| items | array | 否 | chooseOne、chooseMany、shuffle:用于抽取的标签(1 到 256 个,每个最多 200 字节)。仅证明其数量;答案会添加 picked。填写此项或 population。 |
| sides | any | 否 | 仅用于 dice,必填:每颗骰子的面数,至少为 2。 |
| operation | enum | 是 | raw:一个 256 位字。coinFlip:0(反面)或 1(正面)。dice:掷 count 次,每次取 1 到 sides。range:从 min 到 max 的一个整数。chooseOne:一个从 0 开始计数的索引。chooseMany:count 个不重复的索引。shuffle:每个索引各一次。raw | coinFlip | dice | range | chooseOne | chooseMany | shuffle |
| population | integer | 否 | chooseOne、chooseMany、shuffle:抽取总体的数量,1 到 256。填写此项或 items。 |
详细介绍
D20DAO MCP 服务
为 AI Agent 提供可验证的随机数:骰子、抛硬币、范围取值、赢家选择和洗牌,每次都是 Arc 上的一次 VRF 请求,并附带任何人都可以重新验证的证明。每次抽取 0.05 USDC,由你的 Circle Agent Wallet 支付。抽取通过 D20DAO x402 API 在 Arc 上运行。D20DAO 也在 Robinhood Chain 上运行,但那里没有 x402 API:合约会直接在链上请求随机数,使用 @d20dao/vrf-sdk 0.6.2 和其集成指南。
设置
-
钱包。 让你的 Agent 按照 Circle 的设置指南操作。该指南会安装 Circle CLI,通过发送到电子邮箱的验证码登录,并创建 Agent 钱包。你需要自行接受 Circle 的条款。
-
资金。 为钱包充值 USDC,并向 Circle Gateway 存入一些资金,例如在 Arc 上:
circle gateway deposit --chain ARC --method direct --amount 1 --address <wallet>Arc、Polygon、Avalanche、Base、Arbitrum、Optimism、Unichain 和 Ethereum 上的余额均可使用。
-
服务。 将其添加到你的客户端。
Claude Code:
claude mcp add d20dao -- npx -y @d20dao/[email protected]Claude Desktop、Cursor 等(在客户端的 MCP 配置中设置
mcpServers):{ "mcpServers": { "d20dao": { "command": "npx", "args": ["-y", "@d20dao/[email protected]"] } } }在 Windows 上,如果客户端无法直接启动
npx,请使用"command": "cmd"和"args": ["/c", "npx", "-y", "@d20dao/[email protected]"]。请固定版本,因为该服务会使用你的 Circle 会话运行。
让你的 Agent 调用 setup_status;在所有设置完成前,它会指出下一步操作。
工具
| 工具 | 费用 | 功能 |
|---|---|---|
draw | 0.05 USDC | raw、coinFlip、dice(最多 128 个)、range、chooseOne、chooseMany、shuffle(最多 256 个项目)。返回结果,并附带请求、履行和证明链接。 |
get_result | 免费 | 通过 paymentId 读取抽取结果,或通过 requestId 读取请求。 |
setup_status | 免费 | 检查 CLI、登录状态、钱包、Gateway 余额和今日支出。 |
可选的 seed(最多 64 字节)会与抽取绑定在链上,因此可以在结果产生前为抽奖轮次指定名称。请为每次独立抽取提供不同的 seed:五分钟内参数相同的抽取会返回之前的结果,而不会再次扣费。
抽取通常会在约十秒内返回结果,但也可能需要更久。如果客户端的工具超时时间较短(常见默认值为 60 秒),请调高该值;超时后重试会返回相同的抽取结果,不会重复扣费。
设置
| 变量 | 默认值 | |
|---|---|---|
D20_DAILY_LIMIT_USDC | 1 | 每个 UTC 日的支出上限,供该用户的所有服务进程共用。设为 0 可关闭付费抽取。 |
D20_NETWORK | mainnet | testnet 使用 Arc Testnet API 和 testnet CLI 登录(circle wallet login <email> --testnet)。 |
D20_PAY_CHAIN | first funded | 用于支付的 Circle CLI 链代码,例如 ARC 或 BASE。 |
D20_WALLET_ADDRESS | first agent wallet | 用于支付的 Agent 钱包。 |
D20_CIRCLE_CLI | circle on PATH | CLI 的 dist/index.js 路径。 |
D20_MCP_HOME | ~/.d20dao-mcp | 支出记录的保存位置。 |
安全性
- 服务端不持有密钥。Circle CLI 负责签名,且受 Circle 钱包限额约束。它不会代你接受 Circle 的条款:运行的 CLI 不会收到
CIRCLE_ACCEPT_TERMS,并且会设置DO_NOT_TRACK,避免你的项目标签进入 CLI 的遥测数据。 - 它只向
api.d20dao.org(或api-testnet.d20dao.org)付款,每次抽取的金额不超过 0.05 USDC。如果 CLI 报告了其他卖家,该次抽取会返回警告,并停止付费抽取,直到你从服务端的主文件夹中删除halt.json。 - 每次付款前,都会在每日记录中预留抽取费用;如果无法写入记录,则不会付款。
- 对于仍在等待中的抽取,会免费调用
get_result完成。如果付款后结果丢失,服务端会重新发送 CLI 签署的付款,API 最多只会兑现一次。 - 只有在确认收费状态时,结果才会显示
charged: false。如果显示unknown,请勿再次抽取;请通过get_result或钱包进行查询。 draw被标记为有副作用的工具,因此除非你允许,否则客户端会在运行前征求确认。
验证
每个结果都会链接到其请求和履约交易,以及证明页面。你可以使用 @d20dao/vrf-sdk 0.6.2 或更高版本自行重放证明;请参阅验证和 Agent API 指南。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。