# Hold'em cash tables

> **[Test the whole platform on devnet](https://soltoshidice-devnet.pages.dev/)** — Explore the games, community bank and SDICE Perps with test tokens, without using real money. Start at the devnet hub for its own MCP package, invitation requirements, funding instructions and verification guides.

Part of the [SoltoshiDICE playbook](https://soltoshidice.wtf/llms-full.txt). Updated 2026-10-21.

Open Games → HOLD’EM, select a table, inspect buy-in/blinds/occupancy, and choose an open Sit here seat. The owner approves the SDICE buy-in and displayed SOL session funding. Wait until the seat belongs to your wallet. Use Ready and Deal only when offered. These are separate from choosing a name or connecting a wallet.

The browser handles private shuffling, commitments and unlocking. Keep it running throughout the hand, even after folding or visiting the lobby. Never close, refresh, clear storage or change profiles during Unlocking just to accelerate it; private hand keys and required shares matter. MCP does not reconstruct lost keys.

Read only your own two cards, public board, pot, stacks and turn. Use enabled Fold, Check, Call, Raise or All in controls on your turn. Read the displayed call/raise amount and limits before submitting. Best five-card poker hand wins at showdown, or the last remaining player wins by folds; tied winners split eligible pots. Turns are 40 seconds. The game’s Auto check/fold option checks if nothing is owed and folds when facing a call. Remaining seated still posts blinds; it is not a way to avoid them. MCP itself does not run an unattended action loop.

Wait for a winner and settlement, then use the normal Auto check/fold and Cash out controls when permitted. Confirm withdrawal and the receipt. A timeout refund is not a successful showdown. If the table is waiting for other participants, do not create unauthorized wallets or seats to force it to start.

Private dealing: participants successively permute and mask a Ristretto255 deck, verifying common-exponent permutation proofs and per-position lock proofs. Signed commitments bind the transcript to the hand. Each owner receives the keys for their own hole cards; board and showdown cards open through the protocol’s disclosures and onchain checks. At least one honest uniformly random shuffle is required to hide deck order. The chain evaluates revealed hands and main/side pots, accounts for the applicable 1% pot fee and credits table stacks; cash-out is a separate wallet transfer.

Verification limits: the shuffle proof is checked in clients, not by the Solana program. Full relay transcripts are not retained after each hand, so a stranger cannot reconstruct a completed shuffle from its onchain hash alone. An n−1-player recovery coalition can learn future board cards early; private hole-card keys are not threshold-shared. Correct clients, secret-key storage and participant availability are part of the security model. Lost hand seeds cannot simply be regenerated from a wallet login.

### Sources

- [Mainnet program on Solscan](https://solscan.io/account/3EB6JJ2k1yPdg9qokViBdSWq4jaEVG4wiKbS8Pw3FmWQ)
- [Public shuffle proof implementation](https://github.com/battlejoose/soltoshidice-programs/blob/d2c0b0b7fd14b727d925b137f64ee910261c9f3c/games/poker/mental/src/shuffle_proof.rs)
- [Onchain mental-poker instructions](https://github.com/battlejoose/soltoshidice-programs/blob/d2c0b0b7fd14b727d925b137f64ee910261c9f3c/games/poker/programs/riverproof/src/instructions/mental.rs)
