Provably Fair

Verify a Bet

How Provably Fair Works

1

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.

2

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.

3

Result Generation

The game result is derived from SHA-256(serverSeed + ":" + clientSeed + ":" + nonce). Each game type converts this hash into its specific outcome.

4

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