# Architecture: what runs onchain

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

SoltoshiDICE combines six games: Cee-lo, Lucky Block slots, Texas Hold’em, blackjack, Street Fights and Rock Paper Scissors. Poker tournaments use the same private-dealing and settlement system as cash poker. The separate SDICE Perps application provides leveraged synthetic market exposure. Production uses Solana mainnet; local previews and historical devnet evidence are not production balances.

Solana programs enforce funded actions, account ownership, game state transitions, deadlines, token custody and settlement. Program-derived addresses (PDAs) identify protocol accounts and authorize token vaults; they are not ordinary operator wallets with an exportable signing key. SDICE uses Token-2022, six decimals, mint 4nCmpwne7hCoWTSpAd54uENmCgHJrHTyn4DMPCEMpump. The base-layer bank program also implements dice, blackjack, slots, profiles, staking and reward accounting. Poker, fights and RPS have separate game programs.

A browser connects a wallet, registers an onchain player profile, constructs an action and requests approval. Limited game sessions can authorize subsequent permitted moves within their scope. RPC transports requests; confirmed accounts determine the accepted state. Token transfers or escrow credits follow the program’s rules. A hand award, a claimable reward and a completed withdrawal are different balances and can require different transactions.

The 3D scene, player movement, chat, AI banker speech, UI animations and hosting execute offchain. RPC gateways, relays, coordinators and keepers deliver or advance permitted actions; they are not themselves proof that a payment occurred. The AI banker cannot choose a die, card, reel result or winner. Poker proof exchange also happens offchain, with commitments and card openings anchored to Solana. Perps financial instructions execute in Solana programs using MagicBlock’s Solana-native SVM Ephemeral Rollups and Solana base-layer settlement. Read /verification#ephemeral-rollups for the execution boundary and primary documentation.

Perps uses Solana custody and settlement, with trading execution on MagicBlock’s SVM. Selected Solana accounts are delegated, signed instructions execute against that state, and commitments return it to Solana. The ER validator confirms delegated execution; Solana mainnet finalizes commitments and settlement. Each stage has distinct validation and availability assumptions. Oracle and collateral-price inputs, validator/keeper availability and upgrade authority are documented in the Perps guide.

Onchain does not mean immutable or dependency-free. The public verification hub at https://soltoshidice.wtf/verification links all six mainnet programs to their exact verified source revisions and independent deployed-byte hash verification. Public Solscan IDLs and separate security records cover the five original programs; the separate bracket program currently has executable-source verification. Dated evidence and live verifier APIs are provided. Source verification establishes executable identity, not an independent audit or a guarantee of safe behavior.

All six deployed contract sources are public at https://github.com/battlejoose/soltoshidice-programs. They can be read without repository permission. The broader app repository is separate; no private repository access is needed for the contract evidence linked here. 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. See https://soltoshidice.wtf/verification#bank-immutable and the linked finalized receipt.

The historical 5zuL38K9PmCfETiTYjQc9jgyEQ9cy2fnLi2Hd5gHTsab address is isolated devnet, not the live mainnet bank. A historical constant in a bundle does not select the active deployment. Mainnet genesis, active program IDs and each successful instruction establish the network and code actually used.

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)
- [Verification hub: six programs, IDLs, source hashes and receipts](https://soltoshidice.wtf/verification)
- [Mainnet program and vault addresses](https://soltoshidice.wtf/agents/protocol.json)
- [Public contract source](https://github.com/battlejoose/soltoshidice-programs)
- [MagicBlock: Solana-native Ephemeral Rollups](https://docs.magicblock.gg/pages/ephemeral-rollups-ers/introduction/why)
- [MagicBlock: delegation, execution, commitment and undelegation](https://docs.magicblock.gg/pages/ephemeral-rollups-ers/introduction/ephemeral-rollup)
- [Public Solana Delegation Program source](https://github.com/magicblock-labs/delegation-program)
- [Current keys, custody and source-linked bank admin controls](https://soltoshidice.wtf/verification#authority-status)
