What is provably fair, and how does it work?

Use the provably fair calculator below to verify every result and understand how Cloudbet Originals keep the odds honest.
Above are two provably fair tools: a Game Verification Tool — paste your Server Seed, Client Seed, and Nonce from any round to reconstruct and confirm the outcome — and a Server Seed Verification Tool — verify that a revealed server seed matches the hash Cloudbet published before you played.

When you're betting on Cloudbet Originals, every outcome is yours to verify. No guesswork, no gimmicks — just pure, provable randomness you can check yourself.

What is "provably fair"?

Provably fair gaming is a system used by online casinos to ensure every game outcome is honest and can be independently verified by the player. Instead of just trusting the casino, you get mathematical proof that results weren't rigged or manipulated during gameplay.

The Cloudbet Provably Fair advantage:

  1. Cloudbet Originals run on the latest provably fair protocols, so every outcome is tamper-proof, independently verifiable, and mathematically fair.
  2. Once a round is complete and seeds are revealed, anyone can verify with mathematical certainty that the result was generated honestly.
  3. It's like being handed the blueprint to each round — no hidden tricks, no post-spin excuses.

How to be provably fair

Being provably fair means proving two things:

  1. Every game has access to a truly random, tamper-proof sequence of numbers — this page covers that part.
  2. That random sequence determines the game's outcome in a fixed, transparent way — given the same numbers, you always get the same result. This part is game-specific — see how it works for Mines and our other Originals.

To guarantee true randomness, both the player and Cloudbet contribute to the number generation — so neither side can control the outcome alone, and Cloudbet must prove it didn't change its input after the fact.

Key terms

  1. Bit: The basic unit of digital information — "1" or "0." Strings of bits represent numbers in binary.
  2. Byte: 8 bits, representing up to 256 values. Our seeds use 32-byte (256-bit) numbers.
  3. Seed: The starting input for a random number generator. The same seed always produces the same result.
  4. Server seed: Cloudbet's secret code — a 32-byte cryptographically random string generated before play, locked in and revealed after.
  5. Client seed: Your code — set it yourself, or let your browser generate one (up to 255 characters).
  6. Nonce: A round counter that increments each time you play with the same seed pair, so every round is unique.
  7. Hash / Commitment: A secure fingerprint of the server seed, shared with you before you play. It's irreversible — nobody can work backward from it to guess the seed, but once the seed is revealed, hashing it yourself should reproduce the exact same Commitment.
  8. Round Signature: The server seed, client seed, and nonce combined and hashed together — the actual input that determines your round's outcome.
  9. SHA3-256: The hashing algorithm used to create Commitments and Round Signatures. Same input always gives the same fixed-length output; the process can't be reversed.
  10. SHAKE256: A flexible SHA-3 algorithm that turns the Round Signature into the stream of random numbers your game outcome is built from — same input, same output, every time, which is what makes verification possible.
  11. Modulo: The remainder left after dividing one number by another (e.g. 16 % 5 = 1) — used to translate a random number into one of a fixed set of possible outcomes.
  12. Rotate seeds: Refreshing both seeds for a new random pair.

Preparation for a game

Before each round starts, two numbers are created: the Server Seed and the Client Seed.

Cloudbet's game server generates the Server Seed using Node.js's cryptographic randomBytes function — a 32-byte (256-bit) number, effectively a secure digital coin toss repeated 256 times. It's kept secret until the seed pair is rotated. To prove it won't be changed later, the server also hashes it immediately (using SHA3-256) into a Commitment, which is shared with you before you play — so once the seed is revealed, you can hash it yourself and confirm it still matches.

The Client Seed is generated by your browser by default, or you can set your own.

During the game

Your Server Seed, Client Seed, and Nonce are joined together and hashed with SHA3-256 into a single Round Signature — think of it like two people each secretly contributing half of a name, so neither knows the full result in advance.

That Round Signature is then fed into SHAKE256, which generates the stream of random numbers that determine your game's outcome. Because SHAKE256 always produces the same output from the same input, anyone with the revealed seeds and nonce can reproduce your exact result — that's what makes verification possible. Translating that random number stream into an actual game result (e.g. where the mines land, what a dice roll shows) works differently for each game — see how it works for Mines and our other Originals.

Fair game outcomes also rely on rejection sampling — a method that ensures a randomly generated number selects among all possible outcomes with truly equal probability, rather than favoring some outcomes over others due to uneven division.

For a detailed example of Rejection Sampling, we have written up a short example of rolling a 10-sided dice, where, since we have 10 possible outcomes, P is 10.

Rolling a 10-sided dice normally is done by randomly generating a number "X" and calculating X modulo 10 since, similar to a dice-roll, this operation has 10 possible outcomes. However, done this way without doing Rejection Sampling beforehand, you unfairly favour lower outcomes. Let's say that X is a random 4-bit number, so that it has 2⁴=16 possible values: 0 to 15. Then, all possible results of X modulo 10 (X % 10) are:

  1. If X is between 0 and 9: 0 … 9
  2. If X is between 10 and 15: 0 … 5

This is visualized here:

Each of the dice-roll outcomes 0 to 5 can occur through the generation of two different X's, while the outcomes 6-9 only occur through one. This means that the dice-rolls 0 to 5 are twice as probable as the dice-rolls 6-9, which isn't fair:

This happens because 16 doesn't divide evenly by 10. That's why with Rejection Sampling we find the largest number that DOES divide evenly by 10. With 4 bits the largest X can be is 15, and the largest multiple of 10 that fits in this value range is 10, so we reject all randomly generated numbers greater than or equal to 10. This means that only 0 … 9 are possible values for X. Side-note: if a number is rejected then a new number is sampled.

After the rejection step, we calculate X modulo P to get a number between 0 and P. This then determines which of the 1-in-P outcomes we choose.

How to verify your game results

  1. Before you play, note the Commitment and your Client Seed.
  2. After the round, rotate your seeds so the Server Seed used is revealed.
  3. Hash the revealed Server Seed with SHA3-256 — it should match the Commitment you saved. This confirms the seed wasn't changed mid-game.
  4. Paste your Server Seed, Client Seed, and Nonce into the verification calculator below — it reconstructs the result from scratch.
  5. Compare that to what you saw in-game. A match confirms the round was fair; a mismatch would signal tampering (which, with Cloudbet, it won't).

FAQs: your provably fair questions answered

1. Why are the seeds so long and random-looking?

Because randomness is the core of fairness. The long strings prevent both Cloudbet and players from predicting or manipulating outcomes. More entropy = more trust.

2. Can I change my client seed?

Yes. Head to the fairness settings in the game and enter your own client seed any time. You can rotate it as often as you like.

3. What if the server seed doesn't match the original hash?

Then something's wrong. The whole point of hashing is to prove the seed was locked in before your game started. A mismatch would signal tampering — but with Cloudbet, that won't happen.

4. Do I need to understand cryptography to use this?

Nope. The tool does all the heavy lifting. You just copy, paste, and verify.

5. What's a hash exactly?

Think of it like a digital signature. It's generated by scrambling the server seed using a cryptographic algorithm. If someone tries to alter the seed later, the hash will be different — and you'll spot the fraud.

6. Can I use third-party tools to verify results?

Yes. Cloudbet's system is compatible with independent verification tools, so you can double-check outcomes even outside our platform.

7. Why does this matter if the games are fun anyway?

Because fairness isn't a bonus feature — it's a requirement. When you're betting crypto, you deserve full control and zero guesswork. Provably fair makes that the default.

Provably fair game explainers:

  1. Provably fair Mines
  2. Provably fair Pump
  3. Provably fair Plinko
  4. Provably fair Dice
  5. Provably fair Dice: Golden Ticket
  6. Provably fair Limbo
  7. Provably fair Roulette