mcpField
D
D20DAO Verifiable Randomness

D20DAO Verifiable Randomness

ローカル
d20dao.org開発ツール03 週間前に更新

D20DAO Verifiable Randomness について

D20DAOは、サイコロや選択、シャッフルなど、Arc上で検証可能な乱数抽選をAIエージェントに提供します。MCPサーバーはCircle Agent Walletで支払い、再検証可能な証明へのリンクを返します。

主な機能

  1. 01検証可能な乱数抽選
  2. 02サイコロ、範囲、選択、シャッフル
  3. 03無料の結果照会
  4. 04設定と支出の確認
  5. 05再検証可能な証明リンク

活用シーン

  1. 01検証可能な抽選の実施
  2. 02項目や当選者のランダム選択
  3. 03サイコロやコイントスの結果生成

MCP 対応

MCPサーバーは、乱数抽選、結果照会、セットアップ状態確認のツールを公開します。抽選は1回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 ビットのワードを 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
populationintegerいいえ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と統合ガイドを使用して、コントラクトがオンチェーンで直接乱数をリクエストします。

セットアップ

  1. ウォレット。 エージェントにCircleのセットアップガイドに従わせます。Circle CLIをインストールし、メールで届くコードを使ってログインして、エージェントウォレットを作成します。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のセッションで実行されるため、バージョンを固定してください。

エージェントにsetup_statusを呼び出すよう依頼してください。準備がすべて整うまで、次に行う手順を案内します。

ツール

ツール費用機能
draw0.05 USDCraw、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_USDC1UTCの1日あたりの支出上限です。ユーザーのすべてのサーバープロセスで共有されます。0にすると、有料の抽選が無効になります。
D20_NETWORKmainnettestnetを指定すると、Arc Testnet APIとテストネット用CLIログイン(circle wallet login <email> --testnet)を使用します。
D20_PAY_CHAIN最初の入金先支払い元のCircle CLIチェーンコードです。ARCやBASEなどを指定します。
D20_WALLET_ADDRESS最初のエージェントウォレット支払い元のエージェントウォレットです。
D20_CIRCLE_CLIPATH上のcircleCLIの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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。