Provably fair is the most important innovation in crypto gambling — it lets you mathematically verify every game result was fair, without trusting the casino at all. Here's exactly how it works.
Provably fair is a cryptographic system unique to blockchain casinos that lets any player independently verify each game outcome wasn't manipulated. Using SHA-256 hashing with a server seed, client seed, and nonce, you can mathematically prove every result was fair — no trust required.
At a traditional casino, you place a bet and trust that the software produced a random result. You have no way to verify this — you simply hope the casino isn't cheating. That's why regulators and auditors exist.
Provably fair eliminates this problem entirely. Before you bet, the casino commits to a cryptographic hash of the game outcome. After the bet, they reveal the actual values — and you can verify that the pre-committed hash matches. If the casino had tried to change the outcome, the hash wouldn't match.
It's like a casino putting their dice results in a sealed envelope before you bet. After the game they open it. If the result matches what's in the envelope — the game was fair. Cryptographic hashing makes this envelope mathematically tamper-proof.
Every provably fair system uses three values combined to generate game results:
These three values are combined and run through a HMAC-SHA256 function. The output determines the game result — a dice number, crash point, card draw, or any other outcome.
This working implementation runs in any browser console or Node.js environment:
// Provably Fair HMAC-SHA256 Verification // Run in browser DevTools console (F12) async function verifyProvablyFair(serverSeed, clientSeed, nonce) { const encoder = new TextEncoder(); // Import server seed as HMAC key const key = await crypto.subtle.importKey( 'raw', encoder.encode(serverSeed), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign'] ); // Sign clientSeed:nonce with server seed const sig = await crypto.subtle.sign( 'HMAC', key, encoder.encode(`${clientSeed}:${nonce}`) ); // Convert to hex string const hash = [...new Uint8Array(sig)] .map(b => b.toString(16).padStart(2, '0')).join(''); // Map first 8 hex chars to game outcome (0.00–99.99) const decimal = parseInt(hash.substring(0, 8), 16); const outcome = (decimal % 10000) / 100; return { hash, outcome, verified: true }; } // Example — paste your own seeds to verify! verifyProvablyFair( 'yourServerSeed', 'yourClientSeed', 0 // nonce ).then(r => console.log(r));
Press F12 in your browser → Console tab → paste the code above with your seeds. Or use our live verifier below — no coding needed.
Enter the seeds from any completed provably fair game to verify the outcome right here:
| Feature | Provably Fair | RNG (Traditional) |
|---|---|---|
| Verifiable by player? | ✅ Yes — mathematically | ❌ No — trust required |
| Casino can cheat? | ✅ Impossible to hide | ⚠️ Possible without audits |
| Third-party auditor needed? | ✅ Not required | ❌ Required (eCOGRA etc.) |
| Real-time verification? | ✅ Every single bet | ❌ Only periodic audits |
| Used in slots? | ❌ Not typical | ✅ Standard for all slots |
| Transparency level | ✅ Maximum | ⚠️ Limited |
Provably fair applies mainly to crypto-native games: dice, crash, mines, plinko, keno, and limbo. Traditional slots from providers like NetEnt or Pragmatic Play use RNG — not provably fair. Always look for a "Verify" or "Fairness" button in the game interface to confirm.
| Game | Provably Fair? | Available on Stake? |
|---|---|---|
| Dice | ✅ Yes | ✅ Yes |
| Crash | ✅ Yes | ✅ Yes |
| Mines | ✅ Yes | ✅ Yes |
| Plinko | ✅ Yes | ✅ Yes |
| Keno | ✅ Yes | ✅ Yes |
| Limbo | ✅ Yes | ✅ Yes |
| Slots (NetEnt, Pragmatic etc.) | ❌ No (RNG) | RNG only |
| Live Casino | ❌ No (physical) | Physical cards/wheel |
Try verified provably fair games at the top-rated crypto casinos — every result independently verifiable.
Provably fair is a cryptographic system that lets players independently verify every game outcome wasn't manipulated. Using SHA-256 hashing with a server seed, client seed, and nonce, any player can mathematically prove a result was fair — without trusting the casino at all.
After the game, the casino reveals the server seed. Combine it with your client seed and the nonce, run it through HMAC-SHA256. If the output matches the casino's pre-committed hash, the game was fair. Use the live verifier above or the casino's own fairness page.
No — that's the entire point. The casino commits to the server seed hash BEFORE you bet. They cannot change it after seeing your wager. Once the game ends, they reveal the real server seed. Any tampering would cause the hash to not match — immediately detectable by anyone.
Provably fair is used in crypto-native games: dice, crash, mines, plinko, keno, and limbo. Traditional slots from providers like NetEnt or Pragmatic are NOT provably fair — they use RNG instead. Always look for a "Verify" button in the game interface.
Yes, in terms of transparency. RNG requires you to trust the casino and their third-party auditors. Provably fair requires zero trust — you can verify every single outcome yourself using open-source cryptography. For maximum transparency, provably fair is the gold standard in gambling.