Provably fair is a cryptographic system that lets you check that a casino did not change the result of a bet after you placed it. Before you play, the site commits to a secret server seed by showing you its hash. You add your own client seed, and each bet uses a nonce (a counter). The outcome is calculated from all three. Later, the site reveals the server seed, and you can recompute every result yourself to confirm nothing was tampered with.
The site can't know your client seed in advance, and it can't swap its server seed afterwards without the hash giving it away. It proves the draw was honest. It does not prove the game is good value.
What are the parts of a provably fair system?
Case-opening sites, crash games and crypto casino "originals" almost all use the same four building blocks.
| Component | Who controls it | What it does |
|---|---|---|
| Server seed | The casino | A long random string kept secret until you rotate it |
| Server seed hash | The casino (published) | A SHA-256 hash of the server seed, shown to you before you bet as a commitment |
| Client seed | You (or your browser, by default) | A string you can edit so the site cannot predict the final input |
| Nonce | Automatic | A counter that goes up by one with every bet on the same seed pair |
What is the server seed?
The server seed is the casino's secret random value. The site generates it, hashes it, and shows you only the hash. Because it stays hidden while you play, you can't predict upcoming results. Once you rotate (change) your seed pair, the old server seed is revealed so you can audit every bet made with it.
What is the client seed?
The client seed is your contribution. Most sites fill it in automatically, but you should be able to change it to anything you like. Its job is to make sure the casino couldn't have picked a server seed that produces bad outcomes for you specifically, because it didn't know what your client seed would be.
What is the nonce?
The nonce is a number that starts at 0 or 1 and increases with each bet. It lets one server seed and one client seed produce thousands of different results. Without it, every bet on the same seed pair would give the same outcome.
How does hashing make the system trustworthy?
A hash function like SHA-256 turns any input into a fixed-length fingerprint. Two properties make it useful here:
- It is one-way: seeing the hash tells you nothing practical about the original server seed.
- It is collision-resistant: finding a different seed that produces the same hash is computationally infeasible.
So when the site shows you SHA-256(server seed) before you bet, it has locked itself in. If it later reveals a server seed that doesn't hash to that value, you've caught it.
To generate the actual results, most sites use HMAC-SHA256, a keyed version of SHA-256. A common pattern is HMAC_SHA256(key = server seed, message = client seed:nonce). The output is a long hex string, and the game converts part of it into a number: a dice roll from 0 to 99.99, a crash multiplier, a plinko path, a mine layout or a case item ticket. The exact conversion formula differs between sites, and a trustworthy site publishes it.
How do you verify a provably fair roll step by step?
You don't need to be a programmer:
- Before playing, open the fairness or seed settings and note the hashed server seed shown to you.
- Set your own client seed. Something random that you typed yourself is fine.
- Play as normal. Each bet record should show the nonce it used.
- When you want to audit, rotate your seed pair. The site reveals the old unhashed server seed.
- Hash the revealed server seed with any independent SHA-256 tool and confirm it matches the hash you noted in step 1.
- Put the server seed, client seed and nonce into the site's verifier, or better, a third-party or open-source verifier that uses the site's published formula.
- Check that the recalculated result matches the result you actually got for that bet.
If either check fails, screenshot everything and stop playing on that site. An independent verifier matters because a checker on the casino's own domain means trusting the site to check itself. It's part of how we assess sites on our methodology page.
What does provably fair NOT guarantee?
A "provably fair" badge proves one narrow thing: the random number for your bet came from the committed seeds and wasn't altered. It says nothing about the following.
- The house edge. A dice game with a 1% edge and one with a 10% edge can both be perfectly provably fair. The fairness system proves the draw, not the payout table. Over time, the edge still wins.
- Case RTP. On case-opening sites, the random ticket can be provably fair while the case itself is priced well above the value of its contents. Check the item odds and listed prices, not just the fairness badge. See our case battles guide for how case value works.
- Item pricing. The value a site assigns to a skin you win may be higher than what you could actually sell it for elsewhere.
- Withdrawal honesty. A site can run flawless provably fair games and still delay, cap or refuse withdrawals. Fairness math does nothing for you if you can't cash out.
- Hidden rules. Bonus wagering requirements, max-bet rules and account restrictions live in the terms and conditions, not the hash.
- Every game on the site. Provably fair usually applies to in-house originals. Third-party slots and live dealer games typically use their own RNG certification instead.
How should provably fair affect which site you choose?
Treat it as a minimum requirement, not a reason to sign up. A site without verifiable results is asking for blind trust, but passing that bar only gets a site into consideration. House edge, licensing and withdrawal record still matter. Our provably fair casinos list only includes sites we verified ourselves. New to skin sites? Read our skin gambling safety guide.
Provably fair proves the dice weren't swapped. It doesn't change the fact that the dice are weighted slightly toward the house.
Frequently asked questions
Can a provably fair casino still cheat?
It can't secretly change the result of an individual bet without being detectable, provided you set your own client seed and verify results. It can still set a high house edge, overprice cases, apply unfair bonus terms or refuse withdrawals, none of which the fairness system checks.
Do I need to change my client seed?
You should. If the site generates the client seed for you and you never change it, you're relying on the site not to have gamed both inputs. Setting your own client seed is what makes the system genuinely trustless.
Why can't I see the server seed until I rotate it?
If you could see the unhashed server seed while it was active, you could calculate upcoming results before betting. The site shows only the hash as a commitment and reveals the real seed once it's retired, so you can audit past bets but not predict future ones.
Is provably fair the same as RTP?
No. RTP (return to player) describes how much a game pays back on average over a very large number of bets. Provably fair describes how an individual result is generated and verified. A game can be provably fair with a poor RTP.
Is HMAC-SHA256 secure enough for this?
For committing to a seed and generating results, HMAC-SHA256 is a widely used, well-studied standard. The weak points are usually implementation details, such as unpublished conversion formulas, rather than the hash function itself.