# Verify programs, receipts and platform metrics

> **[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.

Bank upgrade authority was permanently revoked at finalized mainnet slot 459508498 (2026-10-21 05:14:24 UTC; October 20 in America/Denver). Its ProgramData authority is null. Poker, Fights, RPS, Perps and brackets remain upgradeable. Existing bank administrative controls remain; code immutability is not an audit or a guarantee of payouts. Verify https://soltoshidice.wtf/verification#bank-immutable and https://soltoshidice.wtf/verification/bank-upgrade-authority-revocation.json. Older archived fairness results predate revocation; use current authority evidence for this separate check.

Perps mainnet delegation is directly checkable at https://soltoshidice.wtf/verification#delegation-proof. Correct Delegation Program: DELeGGvXpWV2fqJUhqcF5ZSYMS4JTLjteaAMARRSaeSh (not the misquoted address ending Rxhbu). The canonical root risk PDA 86EVcDQkvfJo6poPJhsm3TW6vHig31pLfPgEBVngVkob is owned by it. The public evidence includes its delegation record, metadata and successful Perps-to-MagicBlock invocation at finalized slot 455251103. Download the kit and run node verify-delegation.mjs --rpc YOUR_TRUSTED_HTTPS_MAINNET_RPC. This checks delegation only, not all trading or payouts.

Project-hosted services provide realtime views, messages and transaction delivery. Solana programs govern custody and settlement; Perps trading uses MagicBlock’s SVM. A Perps position opening requires the owner signature, an owner/venue-bound trading account and the configured mainnet admission co-signature. Fee sponsorship pays network costs. The operator manages admission and transaction services, so their availability affects new trades and settlement. Price inputs, validator execution and upgrade authority retain the dependencies described in the Perps guide. See https://soltoshidice.wtf/verification#execution-boundaries for source-linked roles.

For payout totals, run the all-game kit and read payoutSummary: exact integer base units, included/excluded games, and separate wallet/escrow destinations. It sums the verified examples only; no lifetime or 24-hour completeness is claimed. A fresh gameplay test additionally requires a newly submitted wager/action and settlement, plus its network, program, timestamps and signatures. Re-fetching historical receipts is not new gameplay. See /verification#coverage-next for the remaining evidence checklist.

Start with the six-game verification kit at https://soltoshidice.wtf/verification#run-check. Coverage manifest: https://soltoshidice.wtf/verification/games/index.json. Download https://soltoshidice.wtf/verification/platform-checks.zip, inspect/unzip all files together, then run node verify-platform.mjs --all --live (Node 22+, no npm install, no wallet or transaction). Use --game fights, rps, slots, blackjack, poker or cee-lo for one example. Exit 0 means selected checks passed within scope; 1 means evidence missing/invalid/unavailable; 2 means partial/untested. No automatic archived fallback. Each result records its limits. Five games replay a historical result and payment; blackjack payment is to table escrow and does not replay all betting actions. Poker checks revealed Ristretto card points, ranks and chip awards only: its full shuffle transcript is missing, so overall fairness remains partial. Perps is separately not-tested, not a VRF game. Do not infer aggregate payouts, newly tested gameplay or a particular rating.

Run the wallet-free fairness and payout check at https://soltoshidice.wtf/verification#run-check. Download and inspect https://soltoshidice.wtf/verification/verify-fairness.mjs, then run node verify-fairness.mjs --live (Node 22+, no dependencies). It independently verifies three ORAO Ed25519 signatures, XOR output and seed binding, replays Cee-lo v4 round 1758, and reconciles a 10,000-SDICE wager with a 20,000-SDICE payment using actual token transfers and balance deltas. It fetches seven finalized mainnet receipts; use --rpc for your own trusted archival endpoint. A missing or invalid receipt gives a nonzero exit and not-verified, never a silent pass. The browser offers the same check. Saved evidence replay is explicitly separate from fresh RPC verification. This is one previously played winning round, not a new gameplay session, a check of every game or aggregate payout totals. Historical oracle signer-set membership remains trusted to ORAO; this replay does not check current upgrade authority. The separate bank revocation receipt is at https://soltoshidice.wtf/verification#bank-immutable.

Start at https://soltoshidice.wtf/verification and https://soltoshidice.wtf/verification/evidence.json. All six deployed program hashes matched independent verified builds. The five original programs’ canonical IDL/security JSON also matched public source in the dated check. Bracket source verification does not claim canonical bracket IDL/security publication or bracket coverage in the game replay kit. Open each live verify.osec.io status URL and compare is_verified, on_chain_hash and executable_hash. Download the public IDL or inspect Solscan’s Program IDL tab. Public metadata and verified executable source answer different questions.

The machine-readable https://soltoshidice.wtf/agents/protocol.json lists the mainnet game programs, bank vault and poker tables from the website’s tracked deployment manifests. Treat its date as a release snapshot, not a live account fetch. Compare addresses, account owners, mint and network against current confirmed RPC data and the successful transaction receipt. Solana mainnet genesis is 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d.

For tokens, inspect pre/post token balances and inner transfers, token mint, decimals and recipient ownership. For table games, compare program-owned escrow and stack accounting before expecting a wallet transfer. Read a signature’s success/error and confirmation status; a submitted, processed or timed-out UI message is not enough to establish finalized payment. Recover an uncertain original signature before retrying any financial action.

Metrics describe different quantities. Wager volume is accepted stake, winning payouts are gross returns including returned stakes, bank capital is current bankroll, and net profit subtracts wagers/costs. Perps collateral volume differs from leveraged notional volume. Do not add token-unit volumes to USD totals, count the same settlement twice, or present a fee-derived estimate as an exact sum of all historical wagers.

The in-game Metrics and per-game Leaderboards show their available scope, timestamps and estimates. Leaderboard “amount won” means total winning payouts, not net profit. Some historical totals are estimated from recorded fees where complete event history is unavailable. A connected wallet’s onchain profile supplies its name; displayed chat names and screenshots are not identity or payment proof.

For a reproducible 24-hour readout, record the UTC window, network, program set, successful transactions included, game-specific event decoding, units, deduplication keys and missing history. Separate confirmed activity from unsettled claims and preserve the snapshot time. This guide deliberately does not hard-code a bank balance or lifetime volume that will become stale.

Receipt interpretation matters: transaction 4ESAeW22qVEVPTeyH3LtXaS8LsYq71xsHq6r6TGhcuko55QfBr1r74hZ4u5xEcemqt6HuPU3xwhcfeU85zfuMzxu is native tag 88, blackjack fulfillment and settlement. It moved 90,000 SDICE from the bank vault to a blackjack table-owned token account. It is not a Cee-lo payout or proof of a personal-wallet withdrawal. https://soltoshidice.wtf/verification/blackjack-payout.json records the instruction, mint, decimals and before/after balances. Decode receipt roles before concluding that a zero-transfer request or losing outcome is a missing payout.

Custody differs by game: the immutable bank holds pooled game liquidity and bank stakes. Poker, Fights and RPS are player-versus-player programs with table/challenge/tournament escrow; they can hold funds during play or pending withdrawal. Their upgrade keys remain active, so upgrades can affect escrow logic. They do not control the bank’s long-term staking vault. Verify each program separately at https://soltoshidice.wtf/verification#authority-status.

The live bank is version 4. Its stored admin can change future Cee-lo wager limits, initialize/toggle blackjack tables, configure slots caps/availability, perform guarded setup/migrations, and withdraw available house SOL rent reserves. These SOL reserves are separate from player deposits and the SDICE vault. The legacy tag-6 general token withdrawal requires version 1 and rejects version 4. Stake-to-Perps conversion requires the stake owner’s signature. Read the exact guards and verified source at https://soltoshidice.wtf/verification#bank-admin and the dated https://soltoshidice.wtf/verification/authority-controls.json. This targeted review is not a full security audit.

### Sources

- [Actual mainnet delegation: addresses, transaction and runnable check](https://soltoshidice.wtf/verification#delegation-proof)
- [Run signatures, dice and payout verification (no wallet)](https://soltoshidice.wtf/verification#run-check)
- [Release deployment manifest](https://soltoshidice.wtf/agents/protocol.json)
- [Live-checkable verification hub](https://soltoshidice.wtf/verification)
- [Dated machine-readable evidence](https://soltoshidice.wtf/verification/evidence.json)
- [Public metadata and final publication receipts](https://github.com/battlejoose/soltoshidice-programs/tree/a4858063626f7e0d896db93857c9372a71bc8b32/metadata)
- [Current keys, custody and source-linked bank admin controls](https://soltoshidice.wtf/verification#authority-status)
