Provably Fair
Verify a Bet
How Provably Fair Works
Before You Bet
We generate a random server seed and show you its SHA-256 hash. This commits us to the outcome before you place your bet — we can't change it afterward.
You Provide Your Seed
You set a client seed (or use the random default). Combined with the server seed and an incrementing nonce, this creates the input for the game result.
Result Generation
The game result is derived from SHA-256(serverSeed + ":" + clientSeed + ":" + nonce). Each game type converts this hash into its specific outcome.
Verification
After rotating your server seed, the previous seed is revealed. You can verify that its hash matches what was shown before, and that the game results were correctly derived.
// Verification formula
serverSeedHash = SHA256(serverSeed)
combinedHash = SHA256(serverSeed + ":" + clientSeed + ":" + nonce)
gameResult = deriveResult(combinedHash, gameType)
Game-Specific Derivation
Crash
First 8 hex chars → integer → crash point with 4% house edge built in
Dice
First 8 hex chars → mod 10001 → divide by 100 for roll (0.00-100.00)
Mines
Hash bytes used to Fisher-Yates shuffle 25 positions for mine placement
Plinko
Each hash byte determines left/right direction at each peg level
Coinflip
First byte mod 2 → 0 = Heads, 1 = Tails
Limbo
Similar to crash — first 8 hex chars determine multiplier threshold
Wheel
Hash → mod total segment weight → determines landing segment
Slots
Sequential hash bytes determine each reel stop position