# SoltoshiDICE devnet laboratory Test the real game controls and Solana transactions without real money. Devnet SOL and every token on these pages have no monetary value. This is a separate deployment, not a switch inside the production wallet. - Games: https://soltoshidice-devnet.pages.dev/sandbox/?test-wallet - SDICE Perps: https://soltoshidice-devnet.pages.dev/perps - Agent documentation: https://soltoshidice-devnet.pages.dev/agents - Machine-readable addresses: https://soltoshidice-devnet.pages.dev/agents/protocol.json - Complete text: https://soltoshidice-devnet.pages.dev/llms-full.txt ## First visit 1. Obtain the existing devnet invitation from the operator. The documentation and Perps page are public; the courtyard retains its invitation gate. 2. Open the games link with `?test-wallet`, connect **Courtyard Devnet Test Wallet**, and verify the wallet. This disposable wallet is created locally for this devnet origin. Never import or fund it on mainnet. 3. In the name-registration panel, press **Get test SOL & tokens**. Wait for confirmation; press again to check a pending transfer. Claim an onchain name after funds arrive, then choose **Join game**. 4. Open **Games** and choose a game. **More → Bank** opens staking. The banner and Perps shortcut stay on devnet. 5. The initial courtyard faucet allocation is 0.075 devnet SOL and 25 million units of each of its two test mints per wallet, for at most ten distinct wallets. It is a finite inventory, not unlimited SOL. Ask the operator for a refill if exhausted; do not buy test tokens. ## Local MCP setup Download `/agents/mcp.zip`, verify its SHA-256 against `/agents/mcp.json`, extract it into a new directory, and run `npm ci` there. Install Node.js 22.13+ and Microsoft Edge first. The MCP runs locally over stdio; `/agents/mcp.json` is a download manifest, not a hosted MCP endpoint. Use `/agents/client-config.json` as the client configuration. Replace the absolute server path and set `GAME_MCP_INVITE_CODE` locally to the invitation. Leave `GAME_MCP_MAINNET=0`. Never paste wallet keys, browser profiles or the invitation into agent messages or public logs. Start with `games_list`, then `games_guide` with `game: "onboarding"`, then `games_open` with `player: "alice", environment: "unified-devnet"`. For Perps use a separate player id and `environment: "perps-devnet"`. The distributed devnet package includes only these two environments. It verifies Solana's devnet genesis before opening either. Repeat `games_observe → games_act → games_wait`. Act only on fresh visible control refs. Each player has an independent persistent browser profile. Keep the profile and browser alive through poker settlement, even after folding. Do not let an agent read another player's private cards or seeds. The MCP has no private-key, raw JavaScript, arbitrary signing or game-API action tools. The operator authorizes the test actions; an agent chooses moves through ordinary controls. Faucet clicks and wallet transactions are not automatic on connection. The disposable courtyard wallet signs devnet actions initiated by its page. Perps has its own browser-local instant wallet. Neither should ever receive real assets. ## What is onchain The client renders the courtyard, collects input and animates results. Cloudflare services coordinate presence, signed admission, private-dealing messages and permissionless keepers. Solana programs enforce account ownership, funded wagers, legal state transitions, deadlines, token custody, payouts and staking. A rendered win alone is not proof of settlement. The public protocol JSON identifies the devnet bank, game programs, token mints and four poker tables. Confirm the RPC genesis is `EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG`. Explorer links must include `?cluster=devnet`. Program-derived accounts are controlled by program logic, not by an exportable vault key. ## Cee-lo dice Queue a small test wager and keep the tab open through the round. The program locks wagers before using ORAO verifiable randomness. Deterministic Cee-lo rules derive dice and payouts from the fulfilled randomness. A client animation or bank voice does not choose the outcome. Record the wager transaction, round account, randomness request and settled payout; confirm the token balance after settlement and refunds. ## Texas Hold'em and tournaments Use three independent test players to start a cash hand. Participants permute and mask a Ristretto255 deck. Clients verify common-exponent permutation and per-position lock proofs; the Solana program checks commitments, disclosures, betting and settlement. The shuffle proof itself is checked in clients, not by the Solana program. At least one honest uniform shuffle is required. Full relay transcripts are not retained, so an onchain hash alone cannot reconstruct a completed shuffle. An n-minus-one recovery coalition can learn future board cards early; private hole-card keys are not threshold-shared. The devnet poker ELF is the reviewed production revision with 40-second turns and auto check/fold: a seated away player remains subject to blinds. Four tables are configured. Tournaments reuse this protocol and the current tournament coordinator. An operator must schedule a devnet event before agents can test entry, seating, table balancing and prizes. The sandbox does not copy a live mainnet tournament. Test one complete hand, auto check/fold, a reload without clearing storage, and final cash-out. Keep the original private profile; deleting it can lose dealing secrets. For fairness evidence retain public commitments, proof checks, board and settlement signatures, but never publish private hole-card seeds. ## Blackjack Join, fund a small table balance and choose legal hit/stand/double/split controls. The native table maintains the shoe and hand state. MagicBlock VRF callbacks are authenticated against the configured queue and program-scoped callback signer; the round and draw nonce bind each result. The native program applies blackjack rules and settlement. It is VRF on base Solana, separate from the Perps execution rollup. The test table uses the current version-4 player-funded fee scheme, an isolated keeper and test bank. Verify the draw request/callback, hand result, returned tokens and refundable SOL. A timeout/refund is a recovery outcome, not a successful completed hand. ## Lucky Block slots Spin a small amount. The program locks the wager, requests MagicBlock VRF, derives the symbols using the fixed mapping and enforces the published paytable. The displayed 96% RTP is a long-run mathematical expectation, not a promise for any spin. Keep the browser open while it settles and returns refundable account rent. Verify the accepted spin account, VRF fulfillment, result and token transfer. ## Rock Paper Scissors Create and accept a challenge using two independent players. Moves are committed before they are revealed. The program checks each reveal against its commitment, applies the RPS rules and enforces timeout paths. Neither player should know the other move at commitment time. Record both commitments, reveals and settlement; test a timeout separately without presenting it as a normally completed match. ## Street Fights Create and accept a small challenge. Acceptance locks the matching stake and requests fight-bound ORAO randomness. The program validates the fulfilled request; domain-separated hashes produce initiative and attack/force/defense dice without modulo bias. Fixed damage rules and pressure after strike 32 guarantee a knockout within 64 strikes. The browser replays this result. Inspect **Proof**, the fulfilled request and the settlement paying 99% of the combined pot to the winner and 1% to the bank. Visual punches and outfits do not determine the outcome. ## Bank, staking and rewards Players send wagers into the shared bank; the bank pays winning returns. Stakers deposit the test bank token and receive onchain ownership/fee accounting. Lock tier changes fee power and withdrawal eligibility. Begin with a flexible stake, verify its position and shares, claim any available rewards, then withdraw after it is eligible. Forever locks cannot be withdrawn, even on devnet. Dice, slots, blackjack, poker and bank controls use the CSD…Jsngc test mint. The preserved RPS and fights deployments use the separate 6n1…Vj26A test mint; the faucet supplies both. They are not interchangeable tokens and neither is mainnet SDICE. The underlying bank and reward accounting, not browser-local balances, is the source of truth. ## SDICE Perps Follow the devnet Perps link, choose an instant wallet and request test tokens from its faucet. Choose test collateral, stake/lock backing as required, select a market and start at low leverage. Open one small position, wait for its confirmed status, close it, wait through rollup commitment and base settlement, then withdraw/unlock the returned test funds. Record both execution-layer and base-layer evidence. The existing devnet program is `8TwyqkVNZTHzBF6JC3k91KvWac6862K81TAzfiuiSfxc`. Execution uses MagicBlock's devnet ephemeral rollup and settlement returns to Solana devnet. Market exposure is synthetic; owning collateral does not mean owning the referenced blue-chip asset. Price feeds and validated price history drive PnL/liquidation, rather than casino randomness. Do not describe Perps as VRF gaming. The SDICE interface is built from the current maintained frontend. Devnet retains its ACIDPUMP primary test token and aPUMP ownership token; the SDICE mirror is separate collateral. Test USDC is not Circle mainnet USDC. Production PumpSwap swaps use real mainnet liquidity; devnet uses its isolated test assets/settlement paths. Mainnet liquidity, token admission and economic performance cannot be proven by a devnet trade. The Perps wallet and courtyard wallet are separate applications; do not transfer a game's token to a Perps vault. Do not treat "price locked" or "committing" as final wallet receipt. If an action is pending, reconcile its existing signature instead of repeatedly creating replacements. If prices are not ready, wait; do not bypass freshness or inventory checks. Devnet wallet history lists the latest 100 native account transactions using standard Solana RPC. Open a receipt for token changes. Transfers involving only token accounts may be absent; this is not the complete mainnet transfer index. ## Release verification — October 16, 2026 Public receipts and exact coverage: https://soltoshidice-devnet.pages.dev/agents/verification.json Hosted UI checks passed for faucet/name registration, a completed dice round, a completed slot spin, a blackjack hand and cash-out, flexible bank staking and withdrawal, poker buy-in and cash-out, and a Perps open/close/settlement followed by test-USDC withdrawal. The downloaded MCP installed cleanly and answered its stdio catalog and onboarding calls. Full multiplayer poker, new head-to-head matches, scheduled tournaments, browser-wallet approvals and fault cases remain separate tests. Existing historical results do not count as new release verification. Perps retains its original devnet native program and test assets; its UI/runtime refresh does not make it an exact mainnet deployment replica. ## Verification checklist - Record the release date, source revision, network genesis and exact program/mint addresses. - Save before/after wallet balances, action amount, transaction signatures, confirmed/finalized status and decoded result accounts. - Verify expected state transitions, custody and refunds. A UI screenshot supports usability evidence; a confirmed native transaction supports onchain execution evidence. - Cover one small normal lifecycle per game first. Test cancellation, reload and timeout separately. No unattended load test or production wager is implied. - Report failures and unsupported paths honestly. Do not call a mocked preview, incomplete oracle callback or pending settlement a passing onchain test. ## Technical references - Protocol and fairness source: https://github.com/battlejoose/hooddice/tree/main/game/docs - Public production architecture, clearly distinguished from this sandbox: https://soltoshidice.wtf/agents/architecture.md - Game proof mechanisms and trust assumptions: https://soltoshidice.wtf/agents/fairness.md - Local MCP source: https://github.com/battlejoose/hooddice/tree/main/game/agent-mcp Devnet can be rate-limited or reset independently of this project. This environment demonstrates functional protocol behavior with test funds; it is not an audit, a profit guarantee or proof of production liquidity.