Provably Fair Casino Games
A provably fair game lets the player confirm, once the round is over, that its result was settled before the bet went in and was not altered afterwards. The casino locks in a secret value and publishes a fingerprint of it, the player adds a value of their own, and the outcome is computed from both with a standard cryptographic function. When the secret is disclosed, anyone can repeat the arithmetic and arrive at the same roll, the same multiplier or the same board.
Of the casinos in our crypto casino reviews that state it either way, 39 of 39 offer games run on this method, in practice their own in-house titles. Below are the mechanism and one bet traced from seed to result; the payouts and chances of those games have a page of their own, on dice, crash and mines odds.

Three Inputs and One Commitment
The server seed. Before the first bet, the casino generates a random string and keeps it secret. What it shows instead is the SHA-256 hash of that string, a fixed-length fingerprint written in hexadecimal. Hashing runs one way only: the fingerprint gives away nothing about the seed, yet no other seed produces it. Displaying the hash in advance is the commitment, because from then on the casino cannot swap the seed without the mismatch showing.
The client seed and the nonce. The client seed is a value the player can set or edit in the fairness settings. Because it is chosen after the hash is on screen, the casino could not have picked a server seed to suit it. The nonce is a counter that rises with every bet placed on the same pair of seeds, so each bet gets a different input while neither seed changes.
The computation. In the common published form, each bet runs HMAC-SHA256 with the server seed as the key and, as the message, the client seed, the nonce and a round counter joined by colons. The digest is read four bytes at a time, and each group of four becomes one number between 0 and 1: the first byte divided by 256, plus the second divided by 256 squared, plus the third divided by 256 cubed, plus the fourth divided by 256 to the fourth power. A game that needs more numbers than one digest holds, such as a mines board or a long plinko drop, moves the round counter up and computes a fresh digest.
In short: The published hash binds the casino's input before play, the client seed binds the player's, and the nonce keeps every bet distinct, so once betting starts neither side has a free choice left.
One Bet, Computed in Full
Every value can be recomputed with any SHA-256 and HMAC-SHA256 tool, entering the seeds as plain text exactly as printed. The dice, limbo and mines rows all come from this one bet: each game reads the same stream of numbers and maps it in its own way.
From Random Number to Result
The bytes 42, 128, 74, 191 become 0.1660200802 because the leading byte, scaled down by a single factor of 256, supplies most of the value, and each byte after it adds a finer adjustment. The result is an evenly spread number that every game on the site can share, which is why the casino documents one conversion and then one short mapping per game.
Dice multiplies the number by 10,001, drops everything after the decimal point and divides by 100, which here gives a roll of 16.60. Limbo divides 0.99 by the number, so a small number produces a large multiplier; this one gives 5.96x. Mines uses one number per mine: the first is multiplied by the count of squares still free and rounded down, which picks a position in that list, the chosen square is taken out, and the next number picks from the squares that remain. On a 3-mine board the first three numbers of this bet place the mines on squares 5, 14, 8.
Checking Your Own Bets After a Seed Change
A bet can be checked only after its server seed is out in the open, which happens when the player retires the seed pair. The routine is the same for every game that uses this scheme:
- Record the commitment. Before playing, copy the server seed hash shown in the fairness settings, and set a client seed of your own.
- Note the bets. Play as usual. The bet history shows the nonce of each bet.
- Rotate the seeds. Ask for a new seed pair. The casino reveals the old server seed and shows the hash of the next one.
- Hash the revealed seed. Run it through SHA-256 and compare the output with the hash you recorded. A single different character means this is not the seed the casino committed to.
- Recompute the bet. Run HMAC-SHA256 with the revealed seed as the key and the client seed, nonce and round as the message, turn the first four bytes into a number, and apply that game's formula.
- Compare. The outcome should match the one in the bet history. Repeat for as many nonces as you like.
The hash comparison is the step that carries the guarantee. If the revealed seed does not lead back to the commitment, no recomputed result means anything, however well it matches.
Crash Runs on a Chain, Not on Player Seeds
Crash cannot use the dice method. One multiplier serves every player in a round, so no single player's client seed can feed it, and a fresh server seed for each round would leave nothing to commit to in advance. The published design fixes every round at once instead: the operator generates one secret value, hashes it, hashes that hash, and repeats the process millions of times, then announces only the last hash in the chain.
Rounds are played through the chain backwards. Each round's hash, once revealed, hashes to the previous round's hash, so any result can be traced link by link to the value announced at the start, and changing a future round would break the chain. To show that the chain was not selected from many candidates for a favorable run, the hash of a Bitcoin block that had not yet been mined when the chain was announced is mixed into every result as a salt.
In the form crash operators have published, the round hash goes through HMAC-SHA256 with that salt, the opening bits of the output become a number X between 0 and 1, and the bust point is 99 divided by one minus X, rounded down to two decimals and never below 1.00x. There is no seed for the player to set, so the check changes too: confirm that each revealed round hash leads back through the chain to the announced one, then recompute the bust point from it.
What a Verified Result Does Not Tell You
A result that checks out is a result the casino could not pick. It is not a result tilted toward the player: the payout formula, not the random number, carries the house edge, so a perfectly verified game still returns less than it takes over time.
The method covers only games whose code the casino runs and documents. Slots from outside studios and live dealer tables draw their results elsewhere, through the studio's random number generator or a real wheel and deck, and a fairness panel on the same site says nothing about them. Nor does a verified bet say anything about whether a withdrawal will be paid, which licence the casino holds or how its terms treat a balance.
The key point: Provably fair shows that a result was fixed before the bet and computed as documented. It says nothing about whether the odds are generous or whether the casino will pay.
Casinos do not all use the same mapping. Some read the digest differently, use another hash function or shuffle a board by another method, and a site can publish one formula while a game runs another. A bet is therefore verified only against the formula that casino documents for that game, and only by recomputing it; the formulas on this page are the common published form, not every casino's.
Provably Fair Myths
A provably fair game has no house edge
If every result can be checked, the game must be an even contest between the player and the casino.
Reality Check
Verification shows that a number was not chosen after the bet. The edge lives in the payout, which is set slightly below the fair price of each chance, and it is collected however honestly the number is drawn. Its size for each in-house game is in the dice, crash and mines odds guide.
Knowing the seed lets the casino time the wins
The casino holds the server seed, so it can see which bets will win and steer when they happen.
Reality Check
Knowing a result is not the same as choosing it. The seed was pinned by the published hash, the client seed was added afterwards, and the nonce simply counts bets in order. The only decision left is whether to place the next bet, and that decision belongs to the player.
A new client seed can end a losing run
Switching the client seed after a string of losses resets the luck of the session.
Reality Check
Every seed pair yields numbers that are equally random. A new client seed produces a different sequence, but the next bet is no more likely to win than before, and the same edge applies to every number in the new sequence as in the old one.
The verify button is an independent check
Clicking the casino's own verify button settles whether a bet was fair.
Reality Check
That button runs the casino's code on the casino's page. It is a convenience. An independent check means hashing the revealed seed and recomputing the bet in a tool the casino does not control, against a hash saved before play began.
Provably Fair FAQ
No. Until the seed pair is rotated, only the hash of the server seed is public, and a hash cannot be run backwards to recover the seed. That is deliberate: a player who could compute the next result in advance could choose when to bet. Every bet placed on the current pair becomes checkable the moment the pair is retired.
No. A certified generator has been tested by a laboratory, usually on behalf of a regulator, and the player relies on that report. Provably fair moves the check down to the single bet, which the player can recompute from the seeds. A casino can have both, one for its own games and one for the games it takes from studios.
Not especially. Its job is to be something the casino did not know when it committed to the server seed, and any value set after the hash is displayed does that job. A client seed generated by the site works too, but setting one yourself removes any question about who chose it.
It usually starts counting again, because the counter belongs to a seed pair rather than to the account. Bets on the retired pair keep the nonces they had, which is why a bet is identified for checking by its seed pair and its nonce together, never by the nonce alone.