This site earns from affiliate partnerships. Our reviews are based on firsthand testing and community data, not paid placement.

How Provably Fair Gambling Works

The Problem Provably Fair Actually Solves

Traditional online casinos operate on trust. You hand over your money, a random number generator produces an outcome, and you either win or lose. The casino assures you the RNG is fair, and you have a few thin layers of protection: third-party audits from labs like eCOGRA or iTech Labs, a gaming license from Malta or Gibraltar, and the vague comfort of the casino's reputation.

Those audits are real, and they matter. But here is the catch: audits happen periodically, not on every single hand. A testing lab certifies that the RNG was producing fair results during the audit window. What happens between audits is, technically, unknowable from the outside. Could a casino tweak individual outcomes for a high-roller on a Monday afternoon, revert everything before the quarterly audit on Friday, and nobody would ever know? Probably not. Almost certainly not, for any reputable operator. But you cannot prove they did not.

Provably fair technology explained

Provably fair flips the entire dynamic. Instead of "trust us, we had an audit," the system says "check for yourself, here is everything you need." Every single round is independently verifiable by you, right now, without any third party involved. That is not a small improvement. It is a fundamentally different category of fairness guarantee.

The Locked Box Analogy

The clearest way to understand provably fair is through an analogy. Forget cryptography for a second.

Imagine a casino dealer writes the result of your next coin flip on a piece of paper before you bet. They seal it in a padlocked box and hand you the box. You can see the box, you can hold it, but you cannot open it. Then you make your bet. Then the dealer gives you the key. You open the box, read the paper, and confirm the result matches what you just experienced.

That is provably fair in physical form. The commitment happened before your bet. You cannot accuse the dealer of changing the result afterward, because the paper was already inside the box you were holding.

There is one more wrinkle. If the dealer knows you are about to bet, they could theoretically pre-write results tailored to specific players, one box per customer, and always hand you the "you lose" box. So in the real provably fair system, you add your own input before the round. You write a word on a sticky note and press it against the outside of the box. Now the final result depends on both the paper inside and your sticky note. The dealer could not have pre-arranged a result that accounts for input they never knew you would provide.

That sticky note is your client seed.

The Three Cryptographic Ingredients

Every provably fair round is a combination of three values. Understanding what each one does is worth a few minutes.

Server seed. Before the round begins, the casino generates a random string called the server seed. They keep it secret, but they publish its SHA-256 hash. A hash is a one-way fingerprint: given the seed, computing the hash is trivial, but given the hash, recovering the seed is computationally impossible. This means you can verify after the fact that the seed was not changed, without knowing what it is in advance.

Client seed. This is generated by your browser, but you can replace it with anything you want before starting a round. Because the final result depends on both the server seed and the client seed combined, the casino could not have pre-computed a result for you specifically. They did not know what client seed you would bring.

Nonce. A simple counter that increments by one with each bet you place while using the same pair of seeds. If the nonce did not exist, two bets with identical seeds would produce identical results, which would be predictable and exploitable. The nonce ensures every single round is unique even when everything else stays the same.

HMAC-SHA256: The Math Under the Hood

The three ingredients get combined using a function called HMAC-SHA256. The formula looks like this:

result = HMAC-SHA256(server_seed, client_seed + ":" + nonce)

HMAC stands for Hash-based Message Authentication Code. You do not need to understand every detail of how it works internally, but you do need to know what properties it has and why they matter for gambling.

One-way: Given the output, you cannot reverse-engineer the inputs. The casino cannot work backward from a desired result to find a server seed that would produce it.

Deterministic: The same inputs always produce the same output. This is essential: it means you can replicate the casino's calculation yourself and get the exact same answer, proving the result was not fabricated.

Collision-resistant: It is computationally infeasible to find two different inputs that produce the same output. This prevents anyone from crafting a fake server seed that hashes to the same value as the original but produces a different game result.

The output of the HMAC-SHA256 function is a 64-character hexadecimal string. That hex string contains all the randomness needed to produce the game outcome. The casino publishes a conversion formula that specifies exactly how to translate specific bytes from the hex string into a game result: a dice roll between 0.00 and 99.99, a crash multiplier, mine positions on a grid, peg decisions in Plinko, and so on.

Because the conversion formula is public and the HMAC function is a standard cryptographic primitive available in every programming language, you can verify the math yourself without trusting any tools the casino provides.

Step-by-Step Verification

Here is how to actually verify a round, from start to finish.

Step 1: Before the round. Open the provably fair section of the game UI. Copy the server seed hash. This is your proof that the casino committed to a specific seed before you played. Screenshot it or paste it somewhere.

Step 2: Play the round. Nothing special here. Place your bet, watch the result.

Step 3: After the round, the server seed is revealed. Casinos typically reveal the previous server seed automatically when you rotate to a new one, or you can request the reveal manually. Note the raw server seed string.

Step 4: Verify the hash. Run SHA-256 on the revealed server seed. Does the output match the hash you copied in Step 1? If yes, the seed was not changed after your bet. The casino committed to this specific seed before you played. If the hashes do not match, something went wrong and you have documented proof.

Step 5: Replicate the result. Run HMAC-SHA256(server_seed, client_seed + ":" + nonce) using the revealed server seed, your client seed, and the nonce from that round.

Step 6: Apply the conversion formula. Follow the casino's published formula to convert the hex output into the game result. For a dice game, this is typically taking the first several bytes, converting them to a number, and mapping the range to 0-99.99.

Step 7: Compare. Your calculated result matches what you experienced. If it does, the round was fair. If it does not, the casino produced a different result than the cryptographic combination of the seeds would dictate, which is manipulation.

You can do all of this manually using any SHA-256 and HMAC-SHA256 implementation online, or you can use the provably fair verifier tool to paste your values and get the verification instantly.

A Real Example: Verifying a Crash Round

Let us walk through a concrete example with actual values.

Before the round, the game shows you the server seed hash:

e3b0c44298fc1c149afbf4c8996fb924
27ae41e4649b934ca495991b7852b855

After the round ends, you rotate seeds. The casino reveals the server seed that was active during your round:

server_seed: "a7f3d91bc4e82650cf1940ab7321de94"
client_seed: "your_custom_seed"
nonce: 42

You run SHA-256 on the revealed server seed. The output matches the hash you recorded before. The seed was not tampered with.

Now you compute:

HMAC-SHA256("a7f3d91bc4e82650cf1940ab7321de94", "your_custom_seed:42")

The output is a 64-character hex string. The crash game's published formula takes the first four bytes of that hex string, interprets them as a number, applies a divisor, and uses the result to determine where the multiplier curve terminates. You apply the formula, get a multiplier, and compare it to what the game showed you.

For a deeper look at how the probability math works behind crash multipliers specifically, including the house edge and expected value calculations, see the crash game math guide.

Which Games Can Be Provably Fair

Provably fair works for any game where the full outcome can be determined before the round starts and committed to cryptographically. Here is how it applies across common in-house game types:

| Game | How the Hash Is Used | |------|---------------------| | Crash | Multiplier derived from hash output (see crash game math) | | Dice | Roll mapped to 0.00-99.99 from first bytes | | Plinko | Each peg decision (left or right) determined by successive bytes | | Mines | All mine positions on the grid set from the hash before you reveal any tile | | Limbo / Hi-Lo | Target multipliers and card draws derived from hash | | Keno | Number selections generated from hash bytes | | Wheel / Roulette variants | Landing segment determined from hash output |

The key requirement is that the game is built in-house. The casino controls the code, they wrote the conversion formula, and they can implement the commitment scheme themselves.

What Cannot Be Provably Fair

Not everything in a crypto casino can be verified this way, and it is worth being clear about the boundaries.

Third-party slots from providers like Pragmatic Play, NetEnt, Play'n GO, or Hacksaw Gaming run on the provider's own proprietary RNG infrastructure. The crypto casino is just a distribution platform. These games are audited by independent testing labs (eCOGRA, iTech Labs, GLI), and those audits are legitimate, but you cannot verify individual spins yourself. The data needed for per-round verification simply is not made available.

Live dealer games present a different challenge. Physical outcomes, like a real roulette wheel spinning or real cards being drawn, cannot be cryptographically committed to in advance. A dealer cannot shuffle a deck, commit a hash to the shuffle order, and then reveal the hash after each hand, because the shuffle order determines all hands in the shoe, not just yours. Some hybrid approaches exist, but traditional live dealer games fall outside what provably fair can cover.

If individual-round verifiability matters to you, stay with in-house originals: crash, dice, Plinko, mines, and similar games.

The Real Limitations (Honesty Matters Here)

Provably fair is genuinely valuable. But it is worth being clear about what it does and does not prove.

What it proves: The casino did not change the outcome after you placed your bet. The result you experienced matches the cryptographic combination of the seeds. No post-hoc manipulation occurred.

What it does not prove: That the house edge is what the casino claims. House edge is a separate mathematical question. A casino could implement provably fair correctly and still advertise a 1% edge while actually taking 3%. Verify the edge claims independently through the published formulas.

The seed selection question. The casino controls server seed generation. In theory, a dishonest operator could generate thousands of server seeds, find one whose hash sequence produces unfavorable outcomes for specific bet sizes, and use that seed. This is called seed hunting. Reputable casinos address this by chaining seeds: each new server seed is derived from the hash of the previous one, which is published before rotation. This creates a verifiable chain that prevents selective seed generation.

Most players never verify. This sounds like a limitation, but it is actually the point. The value of provably fair is that verification is possible, not that everyone does it. A casino that knows any player could check any round at any time has a much stronger incentive to run honest operations than one that only faces periodic audits. The threat of verification creates the honesty, even when verification is rare.

Implementation bugs exist. Open-source verification tools, and third-party researchers reviewing the conversion formulas, help catch cases where a casino's implementation has errors. The math is sound; the implementation still needs scrutiny.

A Brief History

The concept originated in the early Bitcoin gambling era, roughly 2012 to 2013, most notably with SatoshiDice. Before this period, all online gambling was purely trust-based. The innovation was applying well-understood cryptographic primitives, specifically hash functions and HMAC, to gambling outcomes in a way that made each round independently auditable.

It was not invented by any single person or company. It emerged from the Bitcoin community's general ethos of verifying rather than trusting, applied to a domain where trust had always been the only option.

Today, provably fair is standard at most crypto-native casinos. Its absence is a yellow flag: it does not necessarily mean a casino is dishonest, but it does mean you are back to the traditional trust model. For players who moved to crypto gambling specifically to escape that model, it is a meaningful distinction.

Use the provably fair verifier to check any round from any compatible casino without writing any code yourself.

FAQ

What does provably fair mean?

Provably fair is a cryptographic system where the casino commits to game outcomes before you play by publishing a hash of the server seed. After each round, the seed is revealed so you can verify the result was not manipulated. It is the difference between trusting the casino and checking for yourself.

How do I verify a provably fair game?

After a round, the casino reveals the server seed. Hash it with SHA-256 to confirm it matches the pre-round commitment. Then run HMAC-SHA256 with the server seed, your client seed, and the nonce. Apply the game conversion formula and compare the result to what you experienced.

Which games can be provably fair?

In-house games like crash, dice, plinko, mines, limbo, keno, and wheel games can be provably fair. Third-party slots from providers like Pragmatic Play or Evolution Gaming use proprietary RNG that cannot be verified by players. Live dealer games also cannot be provably fair.

Can a casino cheat with provably fair?

Provably fair proves the casino did not change the outcome after your bet. It does not prevent theoretical seed hunting (generating seeds until finding unfavorable ones). Reputable casinos use seed chains to prevent this, and the system keeps casinos honest because manipulation would be detectable.

Back to Learn

Last updated: March 2026