Provably Fair Checker
18+ · Gambling can be addictive. The house edge means you lose over time.
How to use it
- Pick the game and open "Where to find your seeds" for that site's steps. On Stake, rotate your seed pair so the old server seed is revealed.
- Paste the server seed, your client seed (or public seed) and the nonce or round of the bet.
- Add the result the site showed, and the server seed hash it showed before you bet.
- Press Verify: you get a match or mismatch and a hash check. Tick the box to check 20 bets in a row.
- For a site or game not in the list, use the step by step tab; for crash, the hash chain tab.
Sites this checker covers
| Site | Checkable here | Not yet |
|---|---|---|
| Stake | Dice, Limbo, Mines, Plinko, Keno, Crash and Slide (hash chain) | The other games (use the step by step tab) |
| CSGOEmpire | Roulette | Coinflip, cases, case battles |
| CSGORoll | Roll (roulette), crash before game #6788734 (hash chain) | Newer crash rounds, cases, battles, dice |
| Gamdom | None yet | Roulette: code published, but no worked example to test against |
| Roobet | None yet | Roulette: code published, but no worked example to test against |
A Stake dice bet, worked by hand
The published test case: server seed "server seed", client seed "client seed", nonce 1. This is what the checker does with it.
- HMAC-SHA256 with the server seed as key and "client seed:1:0" as message gives bf27f216a44fb12d42a468efe880471991877549e22ea9c0abaad93ba53603d4.
- The first 4 bytes are 191, 39, 242, 22. As a number between 0 and 1: 191/256^1 + 39/256^2 + 242/256^3 + 22/256^4 = 0.74670327.
- Dice multiplies that by 10,001 and divides by 100, cut to two decimals: 74.67.
- The commitment: the SHA-256 of "server seed" is a4e53dc2f480b8fce6fe688b1317658b446299df23ad533394406427c8c19557. If that is the hash the site showed before the bet, the seed wasn't changed afterwards.
Which games it checks
Only algorithms the sites publish, and only ones we could test against a published worked example (the button above fills one in, so you can see the verifier give the known answer).
- Stake: Dice. Roll = first float x 10001 / 100, shown to two decimals (0.00 to 100.00).
- Stake: Limbo. Result = 0.99 x 1e8 / (floor(float x 1e8) + 1), cut to two decimals, at least 1.00x.
- Stake: Mines. 24 floats shuffle the 25 tiles; the first ones picked are the mines. Tiles count left to right, top to bottom.
- Stake: Plinko. One float per row: under 0.5 the ball goes left, otherwise right.
- Stake: Keno. 10 floats draw 10 of the 40 numbers, each from the numbers still left.
- CSGOEmpire: Roulette. SHA-256 of server seed-public seed-round; the first 8 hex characters mod 15 give the roll: 0 Dice (14x), 1-7 T, 8-14 CT.
- CSGORoll: Roll (roulette). HMAC-SHA256 keyed with ROULETTE-serverSeed-clientSeed-nonce; the first 13 hex characters / 2^52 x 15 give the roll: 0 green, 1-7 red, 8-14 black, 4 and 11 are also bait.
Stake makes every result from the same stream: HMAC-SHA256 with the server seed as key and "clientSeed:nonce:round" as message, each 4 bytes turned into a number between 0 and 1. Gamdom and Roobet publish their roulette code as well, but without a worked example to test against, so we don't offer them as games yet. Case openings and case battles aren't covered yet.
How the crash hash chain check works
Crash rounds don't use your seeds. The site generates a chain of hashes, each made by hashing the one before (on Stake, the SHA-256 of the previous hash written as hex text), publishes the last one, then plays the chain from the end. So hashing a game's hash gives the game before it, and hashing on reaches the published hash. The crash point mixes in a salt the site couldn't know when it made the chain: Stake uses the hash of a Bitcoin block that hadn't been mined yet when it posted the chain.
- Stake: Crash (chain posted 8 Jul 2019). Salt and last hash from Stake's Crash seeding post of 8 Jul 2019 (a chain of 10,000,000 games). A game from a newer chain won't reach this hash, and its crash points here would be wrong. Formula: HMAC-SHA256 with the game hash as key and the hash of Bitcoin block 584,500 as message; the first 8 hex characters as a number (int); crash point = 2^32 / (int + 1) x 0.99, at least 1.00x. Shown cut to two decimals.
- Stake: Slide (chain posted 20 May 2020). Salt and last hash from Stake's Slide seeding post of 20 May 2020 (a chain of 10,000,000 games). A game from a newer chain won't reach this hash, and its results here would be wrong. Formula: as Stake Crash, with the hash of Bitcoin block 631,111 as message and x 0.98. Shown cut to two decimals.
- CSGORoll: Crash (games before #6788734). HMAC-SHA256 keyed with the game hash and no message. h = the first 13 hex characters as a number: (100 x 2^52 - h) / (2^52 - h) x (1 - 0.0666), at least 100, rounded down, divided by 100 (the script sets its house edge to 6.66). Games from #6788734 use an EOS block per game instead of this chain.
Stake's seeding posts give the chain's last hash, the salt and the formula but no worked example, so we checked our version against Stake's own code run as published (same crash point for every hash we tried). The Stake presets cover those two chains only: Stake's game events page still linked the 2019 Crash post in July 2025 and we found no later seeding post, but a game from a newer chain won't reach the preset's last hash. CSGORoll's script comes with an example hash that gives 2.11x, which the "Fill in" button uses; that hash isn't from the live chain, so it doesn't lead to the first game hash. For any other site, the custom chain option walks the chain with the rule you pick (hash of the hex text or of the raw bytes) and shows no crash points, because we only add a formula a site publishes.
Sources: Stake's game events page (July 2025 copy) links its Crash seeding post (8 Jul 2019, Bitcoin block 584,500) and Slide seeding post (20 May 2020, block 631,111); block hashes checked on blockstream.info; CSGORoll provably fair and its old crash script (checked 25 Oct 2026).
Sources: Stake implementation, conversions and game events; Stake test cases from the open-source fair library; CSGOEmpire: how is roulette fair; CSGORoll provably fair and the Roll verifier script it links (checked 24 Oct 2026).
Checking a Betrefs free case roll?
This part is only for our own free case: every roll can be checked. We commit to a secret server seed before you open, you control the client seed, and anyone can recompute the result.
1. We commit
We generate a random server seed and publish only its SHA-256 hash. The hash locks the seed in without revealing it.
2. You open
Your ticket is HMAC-SHA256(serverSeed, "clientSeed:nonce"). The first 13 hex characters, mod 1,000,000, give a ticket from 0 to 999,999.
3. We reveal
A seed is used for at least 24 hours and rotates on the first open or visit after that, so the dates below can skip a day. Then we publish it: hash it to confirm it matches and recompute any roll below.
Verify a free case roll
Ticket ranges
| Item | Tickets |
|---|---|
| ★ Karambit | Lore (Field-Tested) | 0 to 0 |
| ★ Gut Knife | Slaughter (Minimal Wear) | 1 to 8 |
| AK-47 | Phantom Disruptor (Field-Tested) | 9 to 208 |
| AWP | Pit Viper (Minimal Wear) | 209 to 958 |
| Glock-18 | Candy Apple (Minimal Wear) | 959 to 1,708 |
| MAC-10 | Candy Apple (Factory New) | 1,709 to 7,708 |
| AWP | Arsenic Spill (Field-Tested) | 7,709 to 13,708 |
| MP5-SD | Neon Squeezer (Field-Tested) | 13,709 to 43,708 |
| Galil AR | Green Apple (Minimal Wear) | 43,709 to 73,708 |
| Better luck tomorrow | 73,709 to 999,999 |
Server seeds
Active (hash only)
b267e0d582336a48968dda54abeaadedffe93bfbeffaf408145aac2586525bdc
Nov 13, 2026
Seed
68fcfa3bbd93da9dc0494855d9cabbe08f5d76024a6c00a4ac4de9c97c8e7cad
Hash
aceaaaea409fdc470b5221f425a091e7d8f962cd994ef2b750bdd8f8a8add0c9
Nov 12, 2026
Seed
766a7ded4c598c9032d2273bc9d96eee21a5f54a954e0ab2592d690c7631dc23
Hash
585c1d98f7f7f61be4346d2b1f31d160e54dd497b04e037b51eaab87de53f98d
Nov 11, 2026
Seed
98f2bb1aa8a96c04885b43d1adbd5f1152005f2ff08d516b0f4dc5d8e59f1ba0
Hash
340be859016f5c44c89e997141579074c4092d3a7232e08a51198937ece19f79
Nov 10, 2026
Seed
c709c788972d78ec93f0d6c8d8c6144ab55ea05b8d9f8c002e359a7d351fdb02
Hash
c3b4beb27f5f2bb5e232d5e7107c73c80ceddf652cf82eea7995629ef7b9d0cb
Nov 9, 2026
Seed
c2f66f8e8142f4b76da56f627eb075553a8570c0e3b7ae56ae42b5d6c6ec5888
Hash
e298eb65dbd28755741683c21e36c8ac7c697602ac3ca55828c4bc153422353f
Nov 8, 2026
Seed
d6cc9009553368c4f3bd209a06bf20e142fe8dc65a5ed250b0c67278e5d71de0
Hash
dd088300d3d3aa7348de95bcc35ad99f64a85d42fac9eeb5da1f63417d9feccf
Nov 7, 2026
Seed
57a241e911e59c904a42f6b8c29a3b770dd0209bab0e6edcbf399f23a869eeac
Hash
eff39da2d3dc310ec098e8b5ade0bc639dba4b68469acb979cf2d615e100511e
Nov 6, 2026
Seed
0f50a677fac1aafd1dbb537497a0efe29aef992a36860c0ee6b10b241de423a5
Hash
fc23faa5159a30382b41253201c1fa016bc0c3146aa7cd1581235084a6c3d3ae
Nov 5, 2026
Seed
90e0f96c9c539f9fcfbd42f8113f31f979f29c68b53f81a304ece3f0607650e4
Hash
2c48120637aef19f41c07648e9c259b965c9fad73678b8a71304510c0d6b0959
Nov 4, 2026
Seed
5bf33e1dacac80da518a1fb7a9983d3b9fbaf80283bf1d94caed8ba081dc0e59
Hash
a3d8bacce7f9066f46fa1ebd6d746d6c80f7bfd8595004cf733cf26a0efdf1bb
Nov 3, 2026
Seed
c73af911933bd150c9943412e2e40bcc643db98f0f7f8b41a12be404ad28768b
Hash
4a600b57e85550c12e43e05039e6ad14472521f7d55af735f0c2c49db18edb7e
Nov 2, 2026
Seed
b4800a250105a00c03de19e6342d7486daa8f49361ec9e21bcaedcf6c9366f8c
Hash
cf65f34dc0d406a8007a34df3faadeb9a7799f946a1a20b6b00470e8047522fe
Nov 1, 2026
Seed
d59dd340ec85c0a55c70f0dc86230b4b77223e70235d181c544d89ec400250b7
Hash
2a35fc62616640c887aa15f62c4728630f57ba078272cec571d21b52eac7a781
Oct 31, 2026
Seed
5044e741ea664663508638da6a25226afeb8c1ef50c65a3fd3256399e4c8c436
Hash
a2e1cecf6b365ac4740e48156fea88212503f75193ed985075684c6556ef35d1
Looking for sites that let you check every bet? See our provably fair gambling sites.
FAQ
- How do I check if a bet was provably fair?
- Rotate your seed pair on the site so the old server seed is revealed (on CSGOEmpire and CSGORoll roulette the seeds are shared and published for everyone). Copy it with your client seed and the bet's nonce into the checker, pick the game, add the result the site showed and press Verify. Then check that the SHA-256 of the server seed matches the hash the site showed before you bet.
- My result doesn't match, what now?
- Most mismatches are input mistakes: a nonce off by one (the checker tries the nonce either side for you), a server seed from a different seed pair than the bet, a space copied at the end of a seed, or different game settings such as the mines count or plinko rows and risk. If it still doesn't match with the seeds and nonce the site shows for that bet, send those to the site's support and ask them to explain.
- Are my seeds sent anywhere?
- No. The check runs in your browser with Web Crypto. Seeds aren't sent to our server and aren't put in the page address; only the game and its settings are, so you can share those.
- How do I verify a crash game?
- Open the crash hash chain tab and paste the game's hash, which the site shows once the game has ended. The checker lists the games before it (hashing a game's hash gives the one before it) with their crash points, and hashes back until it reaches the chain's last hash that the site published before the games were played. Crash points are only worked out for Stake Crash, Stake Slide and CSGORoll's older crash, the ones whose formula the site publishes.
- Can I check a site that isn't listed?
- Yes, if the site publishes its algorithm. Use the step by step tab: pick the hash (HMAC-SHA256 with the server seed as key is the most common), type the message the way the site's fairness page writes it, for example {client}:{nonce}, and compare the hash, the floats and the result with what the site shows at each step.
- Does provably fair mean I'll win?
- No. It proves a result wasn't changed after the seeds were fixed, not that the odds are good. Every game still has a house edge, which you can work out with our house edge calculator.
- What is a nonce in provably fair?
- A counter that goes up by one with every bet you make on the same seed pair, so each bet gets a different result from the same seeds. On CSGOEmpire roulette the round ID plays that role.
- Can a provably fair site still cheat?
- It can't change a result once the server seed hash is shown, which is what the check proves. It doesn't tell you the house edge is fair, that a site pays out, or that the game shown matches the published algorithm unless you verify your own bets.
- Why can't I verify my current seed?
- The server seed stays secret while you're using it; you only see its hash. That's what stops you predicting results. Rotate to a new seed pair and the old one is revealed, then every bet made with it can be checked.
- Do mines or crash predictors work?
- No. Results come from a server seed that stays secret until after the bets it decides, so nothing outside the site can see the next result. Tools that ask for your login or seeds to predict results are scams.