mcpField
D
D20DAO Verifiable Randomness

D20DAO Verifiable Randomness

本地服务
d20dao.org开发工具03 周前更新

关于 D20DAO Verifiable Randomness

D20DAO 为 AI Agent 提供 Arc 上可验证的随机抽取,包括掷骰、选择和洗牌。其 MCP 服务通过 Circle Agent Wallet 付款,并返回可重放验证的证明链接。

主要功能

  1. 01可验证的随机抽取
  2. 02掷骰、范围、选择与洗牌
  3. 03免费查询抽取结果
  4. 04检查设置与支出
  5. 05可重放验证的证明链接

适用场景

  1. 01执行可验证的抽奖
  2. 02随机选择项目或获胜者
  3. 03生成骰子或抛硬币结果

MCP 相关

MCP 服务提供随机抽取、查询结果和检查设置状态的工具。每次抽取费用为 0.05 USDC,通过 Circle CLI 付款。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"org-d20dao-vrf": {
"command": "npx",
"args": [
"-y",
"@d20dao/mcp"
],
"env": {
"D20_DAILY_LIMIT_USDC": "<D20_DAILY_LIMIT_USDC>",
"D20_NETWORK": "<D20_NETWORK>",
"D20_PAY_CHAIN": "<D20_PAY_CHAIN>",
"D20_WALLET_ADDRESS": "<D20_WALLET_ADDRESS>",
"D20_CIRCLE_CLI": "<D20_CIRCLE_CLI>",
"D20_MCP_HOME": "<D20_MCP_HOME>"
}
}
}
}
启动命令npx -y @d20dao/mcp
需要配置的环境变量
D20_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@d20dao/mcp0.1.2

工具

3

收录的工具列表 · 更新于 3 周前

参数类型必填说明
maxany否仅适用于 range,必填:最高值,包含该值,且至少为 min。
minany否仅适用于 range,必填:最低值,包含该值。
seedstring否绑定到此抽取链上的上下文,例如 "raffle-7 round 2"(最多 64 字节)。每次单独抽取都使用新的种子。若要承诺使用某个项目列表,请将其哈希放在此处。
countinteger否dice:掷骰次数,1 到 128(默认值为 1)。chooseMany:不重复抽取的数量,必填。
itemsarray否chooseOne、chooseMany、shuffle:用于抽取的标签(1 到 256 个,每个最多 200 字节)。仅证明其数量;答案会添加 picked。填写此项或 population。
sidesany否仅用于 dice,必填:每颗骰子的面数,至少为 2。
operationenum是raw:一个 256 位字。coinFlip:0(反面)或 1(正面)。dice:掷 count 次,每次取 1 到 sides。range:从 min 到 max 的一个整数。chooseOne:一个从 0 开始计数的索引。chooseMany:count 个不重复的索引。shuffle:每个索引各一次。raw | coinFlip | dice | range | chooseOne | chooseMany | shuffle
populationinteger否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 和其集成指南。

设置

  1. 钱包。 让你的 Agent 按照 Circle 的设置指南操作。该指南会安装 Circle CLI,通过发送到电子邮箱的验证码登录,并创建 Agent 钱包。你需要自行接受 Circle 的条款。

  2. 资金。 为钱包充值 USDC,并向 Circle Gateway 存入一些资金,例如在 Arc 上:

    circle gateway deposit --chain ARC --method direct --amount 1 --address <wallet>
    

    Arc、Polygon、Avalanche、Base、Arbitrum、Optimism、Unichain 和 Ethereum 上的余额均可使用。

  3. 服务。 将其添加到你的客户端。

    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;在所有设置完成前,它会指出下一步操作。

工具

工具费用功能
draw0.05 USDCraw、coinFlip、dice(最多 128 个)、range、chooseOne、chooseMany、shuffle(最多 256 个项目)。返回结果,并附带请求、履行和证明链接。
get_result免费通过 paymentId 读取抽取结果,或通过 requestId 读取请求。
setup_status免费检查 CLI、登录状态、钱包、Gateway 余额和今日支出。

可选的 seed(最多 64 字节)会与抽取绑定在链上,因此可以在结果产生前为抽奖轮次指定名称。请为每次独立抽取提供不同的 seed:五分钟内参数相同的抽取会返回之前的结果,而不会再次扣费。

抽取通常会在约十秒内返回结果,但也可能需要更久。如果客户端的工具超时时间较短(常见默认值为 60 秒),请调高该值;超时后重试会返回相同的抽取结果,不会重复扣费。

设置

变量默认值
D20_DAILY_LIMIT_USDC1每个 UTC 日的支出上限,供该用户的所有服务进程共用。设为 0 可关闭付费抽取。
D20_NETWORKmainnettestnet 使用 Arc Testnet API 和 testnet CLI 登录(circle wallet login <email> --testnet)。
D20_PAY_CHAINfirst funded用于支付的 Circle CLI 链代码,例如 ARC 或 BASE。
D20_WALLET_ADDRESSfirst agent wallet用于支付的 Agent 钱包。
D20_CIRCLE_CLIcircle on PATHCLI 的 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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。