// The conceptHow provably fair actually works
In an ordinary online casino, the result of your bet comes from a random number generator on the casino's server. You can't see it, so you trust the casino and whoever certified it. Provably fair replaces that trust with a simple trick from cryptography: the casino locks in its half of the randomness before you bet, in a way it can't change, and shows you proof afterwards.
The three ingredients
From the casinoServer seedA long random string the casino generates and keeps secret until you change seeds. Before you bet, it shows you only the seed's hash.
From youClient seedA string you can set to anything. Because the casino commits to its seed first, it can't pick one that beats yours.
CounterNonceA number that goes up by one with every bet, so each bet with the same seed pair gets a different result.
Why the hash is the whole point
A hash function like SHA-256 turns any input into a fixed-length fingerprint. It only works one way: you can't get the seed back from the hash, and you can't find a different seed with the same hash. So when the casino shows you the hash before you play, it has committed to that exact server seed. If it swapped the seed later, the hash wouldn't match, and you'd see it.
From seeds to a result
Most casinos combine the three with HMAC, a keyed hash. The server seed is the key, and your client seed and nonce are the message. The output is a long string of random-looking bytes that nobody could predict without both seeds. The game then turns those bytes into a result. For dice, the most common method takes the first four bytes, turns them into a number between 0 and 1, and scales it to a roll from 0.00 to 100.00.
Worked exampleserver seed: rinse-engine-demo-server-seed-7f3a9c
sha256(server seed): d9eb3cc22dbddc59c86605804bec96a97a61f18e4b25a15ed230d00aad474dc2
client seed: my-own-seed · nonce: 1
hmac-sha256: 61454a6b2a238bac6343d15732b446d262223fe0fa3f95b603ff82cb5c5f7940
first 4 bytes: 97, 69, 74, 107 → roll 38.00
How to check a bet, step by step
- Set your own client seed in the casino's fairness settings before you play.
- Copy the hashed server seed the casino shows you. That's its commitment.
- Play, and note the nonce of any bet you want to check. Most casinos show it in your bet history.
- Rotate your seed pair. The casino reveals the old server seed and starts a new one.
- Check the hash. SHA-256 of the revealed server seed must match what you copied in step 2.
- Recalculate the result with the casino's published formula, or the verifier below for standard dice, and compare.
What provably fair does not prove
- It doesn't lower the house edge. A fair 1% edge game still takes 1% of everything you bet over time. Provably fair proves the dice weren't loaded, not that the game is cheap.
- It doesn't cover slots or live tables. Third-party slots and live dealer games use certified random number generators that you can't check yourself.
- It doesn't protect your withdrawal. A casino can run perfectly fair games and still delay payouts or void winnings under its terms. That's why we check licences and complaints too.
- It only works if you check. Nobody verifies every bet, but the fact that anyone can is what keeps the system honest.