How to verify a provably fair casino round yourself
A provably fair claim is only worth something if somebody checks it. Checking takes about five minutes and needs no special software. This guide shows the full routine, from setting up a seed pair before you play to recomputing results afterwards, plus what to do when a result does not match. For the theory behind it, read what provably fair means first.
Before you play: set up a seed pair you can trust
- Open the casino’s fairness or seed settings. Find the hashed server seed (a 64-character hex string) for the active pair and save a copy outside the casino, for example in a note with the date.
- Set your own client seed. Any string you choose works; something random that you have not used before is best. Save it too.
- Note the current nonce (often shown as the number of bets made with this pair). Each bet increases it by one.
Recording the hash yourself matters. If you only look it up later on the casino’s site, you are trusting the casino to show you the same hash it committed to.
While you play: note the bets you want to check
For each bet you may want to verify, write down the game, its settings (Plinko rows and risk, number of mines, Limbo target), the nonce and the result the casino showed. Most casinos also show the nonce in each bet’s details; a screenshot of that panel is enough.
After you play: reveal the server seed
Rotate the seed pair in the casino’s settings. The casino then reveals the old server seed in plain text and starts a new pair with a new hash. Copy the revealed server seed. Bets made with the old pair can now be checked; bets on the new pair cannot be checked until you rotate again.
Verify with our tool
- Open the fairness verifier.
- Paste the revealed server seed and the hashed server seed you saved before playing. The tool computes the SHA-256 of the server seed and tells you whether it matches. If it does not match, stop: the rest of the check is meaningless, because the seed you were given is not the one that was committed.
- Enter your client seed and the nonce of the bet.
- Choose the game and its settings: rows for Plinko, the number of mines for Mines.
- Compare the output with what the casino showed: the roll for Dice, the multiplier for Limbo, the path and slot for Plinko, the mine positions for Mines. The tool also shows the intermediate floats and HMAC values so you can follow each step.
The calculation runs locally in your browser with the Web Crypto API. Our implementation is tested against test vectors from two independent open-source verifiers; the sources are listed on the tool page.
Verify without our tool
You should not have to trust our page either. The Stake-style dice calculation fits in a few lines of JavaScript that you can run with Node.js:
const crypto = require('crypto');
const serverSeed = 'paste revealed server seed';
const clientSeed = 'paste your client seed';
const nonce = 1;
console.log(crypto.createHash('sha256').update(serverSeed).digest('hex')); // must equal the saved hash
const b = crypto.createHmac('sha256', serverSeed).update(clientSeed + ':' + nonce + ':0').digest();
const float = b[0] / 256 + b[1] / 256 ** 2 + b[2] / 256 ** 3 + b[3] / 256 ** 4;
console.log(Math.floor(float * 10001) / 100); // dice rollIf this and our tool agree with each other and with the casino, you have three independent confirmations of the same result.
When the result does not match
Work through these in order. Most mismatches are on this list.
| Check | What goes wrong |
|---|---|
| Nonce | Off by one. Use the nonce from the bet’s details rather than counting bets yourself. |
| Seeds copied exactly | A leading or trailing space, or a missing character, changes everything. Paste again. |
| Right seed pair | The bet was made on an earlier or later pair than the one you revealed. |
| Game settings | Wrong number of Plinko rows or mines. Plinko risk level changes the payout, not the path. |
| Algorithm | The casino does not use the Stake-style scheme. Check its fairness page for its own method. |
| Display rounding | Limbo multipliers are truncated to two decimals; a game may display them differently. |
What a successful check tells you
A matching result shows the round was decided by the committed seed and the published rule. It does not tell you that the casino pays withdrawals on time, that its third-party slots behave as advertised, or that a game is worth playing. The house edge is still there, and over many bets it is what decides the outcome on average. The bankroll calculator shows what that means for a session, and our methodology explains how fairness transparency fits into the overall score alongside payout speed and other factors.
FAQ
Can I verify a bet before rotating my seed?
Not fully. While a server seed is active you only see its hash, so the result cannot be recomputed yet. You can only verify bets made with a seed after the casino reveals it, which normally happens when you rotate to a new seed pair.
My result does not match. Is the casino cheating?
Not necessarily. Most mismatches come from a wrong nonce, extra spaces in a seed, wrong game settings, or a casino that uses a different algorithm from the Stake-style one. Rule those out first, then contact the casino with the seeds, nonce and both results.
Are my seeds sent to CashoutScore when I use the verifier?
No. The verifier computes SHA-256 and HMAC-SHA256 in your browser with the built-in Web Crypto API. Nothing you type into it is sent to our server.
Which games can the CashoutScore verifier check?
Dice, Limbo, Plinko (8 to 16 rows) and Mines (1 to 24 mines), using the Stake-style algorithm. Casinos with a different algorithm need their own verifier or code.
Related guides
18+. Gambling involves risk of loss. Help and self-exclusion.