The commitment: a hashed server seed
Before you place a bet, the house generates a secret server seed and shows you a SHA-256 hash of it. A hash is a one-way fingerprint: you can’t reverse it to find the seed, but the seed always produces the same hash.
This is a commitment. The house has locked in its seed and can’t change it later without changing the hash you already saw.
Your input: the client seed
You provide a client seed (you can set it to anything). Every outcome is derived from a combination of the server seed, your client seed, and a nonce — a counter that increments by one with each bet.
Because your seed is mixed in, the house can’t pre-compute a sequence of bad outcomes for you, and because the server seed is committed, you can’t cherry-pick a good one. Neither side can steer it.
The reveal and the check
When you rotate your seeds, the house reveals the original (unhashed) server seed. You hash it yourself and confirm it matches the commitment from the start. If it matches, the seed wasn’t swapped.
Then you replay each bet: feed the revealed server seed, your client seed and the nonce into the same HMAC-SHA256 function the casino uses, and you’ll reproduce the exact cards, roll, or multiplier. If a single result disagrees with what you were dealt, you’ve caught a rigged game — with cryptographic proof.
What it can and can’t do
Provably fair guarantees the outcome wasn’t manipulated after you bet. It does not remove the house edge, and it can’t predict the future — the next server seed is freshly hidden, so there’s no way to know a result in advance. Anyone claiming a ‘seed predictor’ is selling you nothing.
Provably fair lets you trust cryptography instead of a brand. Verify your own bets in seconds with the Verifier — if the math checks out, the game was honest; if it doesn’t, you have proof.
Open the Verifier →