
D20DAO Verifiable Randomness
org.d20daoPublished by d20dao.orgv0.1.2Updated Oct 24, 2026
Verifiable VRF draws on Arc, 0.05 USDC each. On Robinhood Chain, integrate on chain with the SDK.
Overview
Local MCP server that lets an assistant make paid, verifiable VRF draws (dice, coin flips, ranges, winners, shuffles) on Arc, settled in USDC.
- What you can do
- Run verifiable random draws: raw values, coin flips, dice up to 128, ranges, choosing one or many, and shuffling up to 256 items, each with request, fulfillment and proof links and an optional seed bound on chain. Look up a draw by payment ID or a request by request ID, and finish pending draws for free. Check setup status: CLI, login, wallet, Gateway balance and today's spending.
- When to use it
- Use it when an assistant needs auditable randomness for raffles, giveaways, game outcomes or fair selection, and you are willing to pay a small USDC fee per draw from a Circle agent wallet. It suits cases where a replayable proof of the result matters. For on-chain integration on Robinhood Chain, use the separate SDK instead.
- Requirements
- Local Node.js process run via npx from the npm package. A Circle agent wallet set up with the Circle CLI, logged in with an emailed code, funded with USDC and deposited into Circle Gateway. Optional settings include D20_NETWORK, D20_PAY_CHAIN, D20_WALLET_ADDRESS, D20_CIRCLE_CLI, D20_DAILY_LIMIT_USDC and D20_MCP_HOME. Network access to the D20DAO API. A longer client tool timeout is recommended.
Installation
In SourceWeft
- Open D20DAO Verifiable Randomness in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
D20DAO MCP server
Verifiable randomness for AI agents: dice, coin flips, ranges, winners and shuffles, each one a VRF request on Arc with a proof anyone can replay. 0.05 USDC per draw, paid from your Circle Agent Wallet.
Draws run on Arc through the D20DAO x402 API. D20DAO also runs on Robinhood Chain, where there is no x402 API: a contract there requests randomness directly on chain, using @d20dao/vrf-sdk 0.6.2 and its integration guide.
Setup
-
Wallet. Have your agent follow Circle's setup guide. It installs the Circle CLI, logs you in with an emailed code and creates an agent wallet. You accept Circle's terms yourself.
-
Funds. Fund the wallet with USDC and deposit some into Circle Gateway, for example on Arc:
Arc, Polygon, Avalanche, Base, Arbitrum, Optimism, Unichain and Ethereum balances all work.
-
Server. Add it to your client.
Claude Code:
Claude Desktop, Cursor and others (
mcpServersin the client's MCP config):On Windows, use
"command": "cmd"with"args": ["/c", "npx", "-y", "@d20dao/[email protected]"]if the client cannot startnpxdirectly. Pin the version, since the server runs with your Circle session.
Ask your agent to call setup_status; it names the next step until everything is ready.
Tools
An optional seed (up to 64 bytes) is bound on chain to the draw, so a raffle can name its round before the result exists. Give each separate draw its own seed: an identical draw within five minutes returns the earlier one without paying.
A draw usually answers in about ten seconds, but it can take longer. If your client's tool timeout is short (60 seconds is a common default), raise it; a retry after a timeout returns the same draw rather than paying twice.
Settings
Safety
- The server holds no keys. The Circle CLI signs, and your Circle wallet limits apply. It never accepts Circle's terms for you:
CIRCLE_ACCEPT_TERMSis kept out of the CLI it runs, andDO_NOT_TRACKis set so your item labels stay out of the CLI's telemetry. - It pays only
api.d20dao.org(orapi-testnet.d20dao.org) and never more than 0.05 USDC per draw. If the CLI ever reports another seller, that draw comes back with a warning and paid draws stop until you deletehalt.jsonfrom the server's home folder. - Each draw reserves its price in the daily record before paying; if the record cannot be written, it does not pay.
- A draw that is still pending is finished for free with
get_result. If the answer is lost after payment, the server resends the payment the CLI signed, which the API honours at most once. - A result says
charged: falseonly when that is known. When it saysunknown, do not draw again; check withget_resultor the wallet. drawis marked as a tool with side effects, so clients ask before running it unless you allow it.
Verify
Every result links its request and fulfillment transactions and a proof page. Replay the proof yourself with @d20dao/vrf-sdk 0.6.2 or later; see verification and the agent API guide.
License
MIT
Source: README.md at commit 0541b0a
Tools
0Version history
3- v0.1.2LatestOct 9, 2026
- v0.1.1Oct 9, 2026
- v0.1.0Sep 20, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts