The server commits to its randomness in advance. Your own client seed is an input to every bet you place. Reveal the secret whenever you choose and verify any bet with your own tools, on your own terms.
Step 1
Before your first bet, the server generates a 32-byte secret server seed and publishes its SHA-256 hash. That hash is your commitment. The stored seed is never rewritten: rotation retires it and creates a new one, so the value behind a published hash cannot be swapped, tuned or regenerated. You also hold a client seed. The default is derived from your wallet address, and you can replace it at any time in the Seeds tab.
Step 2
Every bet you place combines three inputs: the committed server seed, your client seed, and a nonce that increases by one on each bet. Your first bet under a commitment uses nonce 0. HMAC-SHA256 turns them into the 64-hex value recorded on the bet.
Step 3
The outcome is derived from those same three inputs through a fixed transformation, and each game's transformation is published in the Verify tab. Slots and pack openings seed the game PRNG with the recorded 64-hex value directly. The Originals games draw from a second HMAC stream keyed by the same server seed over <clientSeed>:<nonce>:<cursor>. Both are fixed by the same commitment, and both are reproducible once the seed is revealed.
Step 4
Rotate your server seed whenever you want. The previous secret is published immediately and every bet placed under it becomes verifiable. Recompute the values in Python, OpenSSL, or on this page. Seeds also rotate automatically once 1,000 bets have been placed under them, so secrets are revealed on a fixed cadence even if you never rotate by hand.
The server chooses its seed, then publishes the hash. Fairness does not rest on how the seed was generated. It rests on the fact that the choice is locked before your first bet and provable after reveal. Any result that fails to reconcile against the revealed seed is exposed the moment you check.
Set your own client seed after a new commitment is published and the server had no opportunity to select its seed against yours. What you can prove is exact: the server seed was committed before your client seed was set.
Rotation is free and takes one request. Rotate per session, per day, or after every bet. Each rotation turns everything under the old seed into checkable record, and a single failed check is cryptographic evidence anyone can reproduce. That standard applies to every bet on the platform, at every stake.
Deposits, withdrawals and balances settle on Arbitrum, and player funds sit in on-chain escrow rather than on a balance sheet you take on faith. Outcomes are fixed by cryptographic commitment before you bet and delivered without waiting on blocks, so verification never costs you speed.
Crash and the live wheel draw one shared result per round from a pre-committed hash chain. The server generates the chain backwards from a final secret, so each seed is the SHA-256 preimage of the one before it, and publishes the hash of the first seed before any round opens. That single published hash is the commitment for the whole chain.
As rounds resolve, their seeds are revealed one at a time. To check a round, hash its revealed seed: the result must equal the previous round's revealed seed, or the published chain head for the first round. Then recompute the round outcome as HMAC-SHA256 of crash:<roundIndex> keyed by that seed. Every player checks the same values for the same round.
Multiplayer rounds do not take a client seed. One round has one result shared by everyone in it, so the round randomness is bound to the chain and the round index rather than to any individual player.