D20DAO Verifiable Randomness について
D20DAOは、サイコロや選択、シャッフルなど、Arc上で検証可能な乱数抽選をAIエージェントに提供します。MCPサーバーはCircle Agent Walletで支払い、再検証可能な証明へのリンクを返します。
主な機能
- 01検証可能な乱数抽選
- 02サイコロ、範囲、選択、シャッフル
- 03無料の結果照会
- 04設定と支出の確認
- 05再検証可能な証明リンク
活用シーン
- 01検証可能な抽選の実施
- 02項目や当選者のランダム選択
- 03サイコロやコイントスの結果生成
MCP 対応
MCPサーバーは、乱数抽選、結果照会、セットアップ状態確認のツールを公開します。抽選は1回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 ビットのワードを 1 つ。coinFlip:0(裏)または 1(表)。dice:1 から sides の範囲で count 回ロール。range:min から max の範囲の整数を 1 つ。chooseOne:0 始まりのインデックスを 1 つ。chooseMany:重複なしのインデックスを count 個。shuffle:すべてのインデックスを 1 回ずつ。raw | coinFlip | dice | range | chooseOne | chooseMany | shuffle |
| population | integer | いいえ | chooseOne、chooseMany、shuffle:抽選元の個数、1~256。これか items のいずれかを指定してください。 |
詳細
D20DAO MCP サーバー
AI エージェント向けの検証可能な乱数です。サイコロ、コイン投げ、範囲指定、当選者の選出、シャッフルを、それぞれArc上でVRFリクエストとして実行し、誰でも再検証できる証明を提供します。1回の抽選につき0.05 USDCで、Circle Agent Walletから支払います。
抽選は、D20DAO x402 APIを通じてArc上で実行されます。D20DAOはRobinhood Chainでも稼働していますが、x402 APIはありません。そのため、@d20dao/vrf-sdk 0.6.2と統合ガイドを使用して、コントラクトがオンチェーンで直接乱数をリクエストします。
セットアップ
-
ウォレット。 エージェントにCircleのセットアップガイドに従わせます。Circle CLIをインストールし、メールで届くコードを使ってログインして、エージェントウォレットを作成します。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のセッションで実行されるため、バージョンを固定してください。
エージェントに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を指定してください。同じ抽選を5分以内に再度実行すると、支払いなしで前回の結果が返されます。
通常、抽選結果は約10秒で返されますが、それ以上かかることもあります。クライアントのツールタイムアウトが短い場合(一般的なデフォルトは60秒)、タイムアウトを延長してください。タイムアウト後に再試行しても、二重に支払うことなく同じ抽選結果が返されます。
設定
| 変数 | デフォルト | |
|---|---|---|
D20_DAILY_LIMIT_USDC | 1 | UTCの1日あたりの支出上限です。ユーザーのすべてのサーバープロセスで共有されます。0にすると、有料の抽選が無効になります。 |
D20_NETWORK | mainnet | testnetを指定すると、Arc Testnet APIとテストネット用CLIログイン(circle wallet login <email> --testnet)を使用します。 |
D20_PAY_CHAIN | 最初の入金先 | 支払い元のCircle CLIチェーンコードです。ARCやBASEなどを指定します。 |
D20_WALLET_ADDRESS | 最初のエージェントウォレット | 支払い元のエージェントウォレットです。 |
D20_CIRCLE_CLI | PATH上のcircle | CLIのdist/index.jsへのパスです。 |
D20_MCP_HOME | ~/.d20dao-mcp | 支出記録の保存先です。 |
安全性
- サーバーは鍵を保持しません。署名するのは Circle CLI で、Circle ウォレットの制限が適用されます。Circle の利用規約に代わって同意することはありません。
CIRCLE_ACCEPT_TERMSは実行する CLI に渡されず、項目ラベルが CLI のテレメトリに含まれないよう、DO_NOT_TRACKが設定されます。 - 支払い先は
api.d20dao.org(またはapi-testnet.d20dao.org)のみで、抽選1回あたりの支払いは 0.05 USDC を超えません。CLI が別の販売者を報告した場合、その抽選結果には警告が付けられ、サーバーのホームフォルダーからhalt.jsonを削除するまで支払いを伴う抽選は停止します。 - 抽選の支払い前に、その価格を日次記録に確保します。記録を書き込めない場合、支払いは行いません。
- 保留中の抽選は、
get_resultを使って無料で完了します。支払い後に回答が失われた場合、サーバーは CLI が署名した支払いを再送します。API はこれを最大1回のみ受理します。 charged: falseと表示されるのは、それが確認できている場合のみです。unknownと表示された場合は、再度抽選しないでください。get_resultまたはウォレットで確認してください。drawは副作用のあるツールとして指定されているため、許可しない限り、クライアントは実行前に確認を求めます。
検証
すべての結果には、リクエストトランザクション、履行トランザクション、および証明ページへのリンクが含まれています。@d20dao/vrf-sdk 0.6.2 以降を使って、ご自身で証明を再現してください。検証およびエージェント API ガイドを参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。