Provably fair crypto casinos: how to verify a result yourself
TL;DR. Provably fair lets you check that a game result was locked in before you bet and not changed afterward. The casino commits to a hidden server seed (you see only its hash), you add a client seed, and each bet's nonce feeds HMAC-SHA256 to produce the result. After you rotate seeds the casino reveals the server seed; you hash it to confirm it matches the commitment, then recompute the result. It proves the round wasn't rigged — not that the house edge is zero or that withdrawals are safe.
What "provably fair" actually means
Provably fair replaces "trust us" with math you can check. It uses a commit-and-reveal scheme: the casino locks in a result before your bet and later reveals enough for anyone to confirm it never changed. It applies to house-original games — dice, crash, mines, plinko, limbo, keno. Studio slots and live-dealer tables are not provably fair; they are tested by independent labs such as eCOGRA, GLI, and iTech Labs, which check the random-number generator across millions of rounds. One model gives per-bet transparency, the other gives statistical assurance; neither is automatically better.
The three ingredients
- Server seed — a secret the casino generates. Before you bet, you see only its SHA-256 hash, a 64-character fingerprint that locks the casino in without revealing the seed.
- Client seed — your input. Set it to anything; because the casino committed to the server seed before knowing your client seed, it cannot steer the outcome.
- Nonce — a counter that increments with each bet, so the same seed pair produces a different result every round.
The result is HMAC-SHA256(server_seed, client_seed:nonce), a hex string the game maps deterministically to a dice roll, crash point, or mines board.
How to verify a bet, step by step
- Before playing, open the Fairness or Provably Fair panel and copy the hashed server seed. This is your sealed envelope — save it.
- Set your own client seed.
- Play, and note the client seed and the nonce for the bet you want to check.
- Rotate the seed pair. Rotating is what makes the casino reveal the old, unhashed server seed.
- Hash the revealed server seed with SHA-256 and confirm it equals the commitment you saved. If it matches, the casino did not swap the seed after seeing your bets.
- Recompute
HMAC-SHA256(revealed_seed, client_seed:nonce), apply the game's published conversion formula, and confirm it matches the result you were paid on.
Use the casino's built-in verifier or an independent, client-side tool that runs in your browser. Never paste wallet recovery phrases, passwords, or an active unrevealed server seed into any tool — verification needs only bet-level inputs. One verified bet under a seed pair confirms the math for every bet under that pair.
Variations you'll meet
Some crash games use a hash-chain model, where a long chain of hashes is generated in advance and traversed backward from a published terminating hash — every outcome in the cycle is fixed before the first round. Others, like some Aviator implementations, use SHA-512 with several client seeds. The principle is identical; only the algorithm and the number of inputs change, so always follow the specific platform's fairness documentation for the exact formula.
What provably fair does NOT prove
It does not prove the return-to-player — a provably fair game still has a house edge. It does not prove the operator will pay you: a verifiable dice roll says nothing about whether a withdrawal clears. And it does not replace licensing or dispute resolution. Treat it as one signal among several, alongside a real licence and a payout record — see how we rate operators, the no-KYC casino list, and how to vet one.