How provably fair works
Provably fair is a cryptographic trick that stops a casino changing a game result after you have placed your bet. The casino commits to a secret number in advance by publishing its hash, mixes it with a number you control, and after the round reveals the secret so you can re-run the maths and confirm the outcome was fixed before you clicked.
The commitment, in one paragraph
A hash function like SHA-256 turns any input into a fixed-length string of characters. It works one way: you cannot read the input from the hash, but anyone with the input can reproduce the hash exactly. That is the whole foundation. The casino generates a secret server seed, shows you SHA-256(server seed) before you bet, and cannot later swap the seed for a friendlier one — any change would produce a completely different hash, and you already have the old one written down.
The three ingredients
- Server seed. A long random string generated by the casino and kept secret while it is in use. You see only its hash.
- Client seed. A string your browser generates, and which you can usually edit to anything you like. Because you control it, the casino cannot pick a server seed that produces a good result against a client seed it already knows.
- Nonce. A counter that starts at 0 or 1 and goes up by one with every bet. It lets one seed pair produce an endless stream of different results without ever repeating.
Those three are combined, normally with HMAC-SHA256, into one hash per bet: HMAC_SHA256(server seed, client seed:nonce). Some sites add a fourth value, a cursor, when a single round needs many random numbers — think of twenty-five Mines tiles or sixteen Plinko bounces.
What happens on a single bet
- You open the fairness panel and copy the hashed server seed. This is your receipt.
- You set a client seed, or accept the one generated for you.
- You bet. The server computes the HMAC for the current nonce and converts it into a result.
- The nonce ticks up by one. Repeat for as many bets as you want on this seed pair.
- When you rotate the seed, the casino reveals the old server seed in plain text.
- You hash the revealed seed and compare it with the receipt from step one. Match means the seed was never changed. Then you recompute any individual bet and compare the outcome.
From a hash to a game result
A hash is hexadecimal, so each pair of characters is a byte with a value from 0 to 255. Games turn those bytes into playable numbers in a few standard ways:
- Dice and Limbo. Take the first four bytes, divide each by successive powers of 256 and add them up. That produces a uniform float between 0 and 1, which maps to a roll from 0.00 to 99.99 or to a multiplier.
- Crash. The same float is pushed through a formula that produces the bust multiplier, with the house edge built in as a share of rounds that bust instantly. The round is fixed before the curve starts rising; cashing out early is you reacting, not the number changing. The crash mechanics guide walks through the curve in detail.
- Mines. Bytes are used to shuffle a 25-tile grid, Fisher-Yates style, and the first N positions become bombs. Every tile's fate exists before your first click, which is why no click order is better than another — see how Mines works.
- Plinko. One bit or byte per row decides left or right, so a sixteen-row board consumes sixteen values. How Plinko works covers the payout distribution.
- Cards and Keno. A deck or a pool of numbers is shuffled with the same byte stream, then dealt or drawn in order.
Why rotating seeds matters
You can only verify bets made on a seed pair after the server seed has been revealed, and a seed is revealed only when it is retired. So verification is always retrospective. Rotate your seeds whenever you want to audit a session: the old seed is published, a new hash commitment appears, and the nonce resets. If a casino never lets you rotate, or reveals nothing, the "provably fair" label is decoration.
How to verify a result yourself
Paste the revealed server seed, your client seed and the nonce into our provably fair verifier, pick the game, and compare the output with what you saw on screen. Two checks are worth running: the seed hash check (does the revealed seed hash to the commitment you saved?) and the outcome check (does the HMAC produce the result you were paid on?). If either fails, you have something concrete to raise with support — a hash mismatch is not a matter of opinion.
What provably fair does not prove
| It proves | It does not prove |
|---|---|
| The result was committed before your bet | That the game is a good bet — the house edge is still there |
| The server seed was not swapped mid-session | That the casino is solvent or will pay you |
| Each bet in the sequence is reproducible | That third-party slots are fair — those use the provider's RNG |
| The casino cannot peek at your client seed choice afterwards | That bonus terms, limits or support are reasonable |
The last point deserves repeating. Provably fair covers in-house "originals" only. A slot from an external studio runs on that studio's server and is not verifiable by you, which is why a casino can be genuinely provably fair and still have thousands of games you simply have to trust. Our list of provably fair crypto casinos shows which sites publish verification for their originals.
| Casino | Provably fair originals | Slots | Prediction markets |
|---|---|---|---|
| Lumenbet | 12 | 2,700+ | Yes |
| Stake | 15 | 3,000+ | No |
| BC.Game | Yes | 8,000+ | No |
| Shuffle | Yes | 3,000+ | No |
| Roobet | Yes | 3,000+ | No |
Provably fair versus a licence and an RNG audit
A licensed casino sends its RNG to a testing lab, which certifies it periodically. You trust the lab and the regulator. Provably fair flips that: you trust nothing and check one bet at a time, but you get no regulator to complain to if the payout never arrives. The two protect against different failures, and the strongest position is having both. Where a site has one and not the other, know which one you are relying on.
Verification does not change the odds
Lumenbet, which publishes the house edge for each of its originals — 1% on Coinflip, 2% on Dice, Mines, Plinko and Limbo, 3% on Crash, 4% on Keno — is run by the same team that runs this site, so treat our view of it as an interested one. That edge is in the formula you are verifying. A verified result is an honest result, not a profitable one, and no seed trick or pattern-hunting changes the long-run maths. Gambling can be addictive; if you are chasing losses rather than checking hashes, see our responsible gambling page.
FAQ
Can a casino cheat if the games are provably fair?
Not by changing a committed result, as long as you saved the hash and actually verify afterwards. It can still cheat in ways the system does not cover: refusing withdrawals, changing terms, or running unverifiable third-party games.
Should I change my client seed often?
Changing it costs nothing and removes any theoretical advantage from a seed the casino has seen before. It does not make you more likely to win; each bet remains independent.
Why can I not verify a bet straight away?
The server seed must stay secret while it is in use, otherwise you could calculate future results and the game would break. Rotate the seed pair to reveal it, then verify every bet you made on it.
Are slots provably fair?
Usually no. Slots come from external studios running their own RNGs, so only the studio and its auditor can check them. Provably fair almost always refers to a casino's own originals such as dice, crash, mines and plinko.
What do I do if a verification fails?
Save the hash, seeds, nonce and the result you saw, then contact support and ask them to reproduce it. A reproducible mismatch is strong evidence; if no one can explain it, stop playing there.