Roulette Spins: How Single-Seed Verification Works in Practice

profile avatar

the author

ProvablySmart Research Desk

date post

Aug 28, 2026

Share

facebook twitter

Single-seed verification is a method used by crypto casinos to demonstrate that roulette outcomes are not manipulated. Unlike traditional multi-seed systems where each spin uses a new seed, single-seed schemes commit to one server seed for a session (often 10,000 spins) and derive each spin outcome using a client seed and a nonce. This article explains the mechanism, provides a practical verification example, and outlines what you can check to confirm fairness.

What Is Single-Seed Verification?

In single-seed verification, the casino generates a server seed (a random string) before any spins occur. The SHA-256 hash of this seed is published on the casino’s website or via a blockchain transaction. The player can also choose a client seed (or use a system-generated one). Each spin is assigned a sequential nonce (1, 2, 3, …). The outcome number is derived from a cryptographic hash of the concatenation of the server seed, client seed, and nonce. After the session ends (e.g., after 10,000 spins), the casino reveals the original server seed. The player can then verify that the hash of the revealed seed matches the previously published hash, and that all spin outcomes were correctly computed from the seed, client seed, and nonce.

This method reduces the computational overhead for the casino (only one seed to generate and store) and ensures that the player cannot retroactively change the seed to affect past spins. The player’s only control is the client seed, which can be changed before a session to add personal randomness.

How the Verification Process Works

The verification process involves four steps:

  1. Seed Commitment: Before any spins, the casino publishes the hash of the server seed. The player should record this hash (e.g., from a “Provably Fair” page).
  2. Spin Generation: Each spin uses the formula: outcome = HASH(server_seed || client_seed || nonce) mod 37 (for European roulette) or mod 38 (for American). The result is a number between 0 and 36 (or 37). The casino displays the spin outcome in real time, and the player can record the client seed and nonce.
  3. Seed Reveal: After the session ends, the casino reveals the original server seed. The player can verify that SHA-256(server_seed) == published_hash.
  4. Recomputation: The player recomputes the hash for each spin using the same server seed, client seed, and nonce, and checks that the modulo result matches the recorded outcome.

Below is a hypothetical example of what the verification data might look like for three spins. In practice, the casino provides a downloadable file or a list of outcomes.

Spin #NonceClient SeedServer Seed (revealed)Hash (SHA-256 of server_seed || client_seed || nonce)Outcome (mod 37)
11player123a1b2c3d4e5f6…9f86d081884c7d659a2feaa0c55ad015…17
22player123a1b2c3d4e5f6…e3b0c44298fc1c149afbf4c8996fb924…5
33player123a1b2c3d4e5f6…d7a8fbb307d7809469ca9abcb0082e4f…33

Note: The actual outcomes depend on the full hash. Most casinos use a published algorithm (e.g., sha256(server_seed + client_seed + nonce)) and then convert the first few bytes to an integer modulo 37.

Verifying a Spin: A Practical Example

Assume you have the following data from a casino:

  • Published seed hash: 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
  • Server seed (revealed later): abc123
  • Client seed: def456
  • Nonce for spin #1: 1
  • Recorded outcome: 17 (European roulette)

Step 1: Verify the seed hash. Compute SHA-256("abc123"). If the result matches the published hash, the seed was not tampered with.

Step 2: Compute the spin hash. Concatenate the server seed, client seed, and nonce: "abc123def4561" (exact formatting may vary; some casinos use a delimiter like a colon or underscore). Compute SHA-256 of that string. For example, using Python:

import hashlib
hash = hashlib.sha256(b"abc123def4561").hexdigest()
# result: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

Step 3: Convert the hash to an integer. Typically, the first 4 bytes (or 8 bytes) of the hash are converted to an integer. Let’s take the first 4 bytes (hex 9f86d081) which is 2673869185 in decimal. Compute 2673869185 mod 37 = 17 (since 37*72266666 = 2673868642, remainder 17). This matches the recorded outcome. If it does not match, something is wrong.

You can repeat this for every spin in the session. Many casinos provide a JavaScript tool or a downloadable script that automates this verification.

What to Check When Choosing a Casino

Not all single-seed implementations are equally transparent. When evaluating a crypto casino, verify the following:

  • Seed rotation policy: How often does the casino change the server seed? A seed used for too many spins (e.g., 100,000) increases the risk of a hypothetical attack where the casino could predict future outcomes if they know the seed. Industry best practice is to rotate seeds every 10,000–20,000 spins.
  • Seed hash publication: Is the hash of the server seed published before the first spin? It should be visible on a publicly accessible page or as a transaction on a blockchain (e.g., Ethereum).
  • Client seed control: Can you change your client seed? This allows you to introduce your own randomness. If the casino does not allow client seed changes, it is less transparent.
  • Verification tool: Does the casino provide a tool to verify past spins? Some casinos offer a “Verify” button on each spin history record.

For a curated list of casinos that meet these criteria, see our casino reviews.

Common Pitfalls and Misconceptions

Pitfall: Seeds Not Revealed Until After Session

Some casinos reveal the seed only after the entire session (e.g., 10,000 spins) is complete. This is standard. However, if the casino reveals the seed after each spin, it is not true single-seed verification (it becomes a multi-seed scheme). The player must trust that the seed used for future spins was not known in advance. Single-seed with a pre-commitment is the only way to verify after the fact.

Misconception: Single-Seed Is Less Secure Than Multi-Seed

Multi-seed schemes (where a new seed is used for each spin) require the casino to generate and commit to each seed individually. Single-seed is equally secure if the cryptographic hash function is collision-resistant and the seed is of sufficient length (at least 128 bits). The key is that the seed is revealed only after the session, so the casino cannot change outcomes retroactively.

Pitfall: Ignoring the Nonce Range

If the casino does not enforce a unique nonce per spin, the same outcome could be generated twice. The nonce must be strictly increasing. Always check that the nonce increments by 1 for each spin.

For a deeper dive into provably fair systems, refer to our guides on seed generation and verification.

FAQ

Can I verify a roulette spin without the server seed?

No. You need the server seed to recompute the outcome. The server seed is revealed only after the session ends. Before that, you can only check the hash of the seed to ensure it hasn’t changed. Some casinos allow you to request an early seed reveal (ending the session), but then you lose the ability to play further spins on that seed.

What if the casino refuses to reveal the server seed?

If a casino does not reveal the server seed after a session, it is not provably fair. You should avoid such casinos. Legitimate operators will have a clear policy on seed disclosure and often publish the seed on a public blockchain timestamp.

How do I know the casino didn’t generate multiple seeds and pick the one that benefits them?

This is prevented by the seed commitment step. The casino publishes the hash of the seed before any spins. They cannot change the seed after seeing the player’s client seed and nonce, because the hash is fixed. The only way to abuse the system is if the casino can predict the client seed. That is why you should always choose your own client seed randomly.

More News

Commit-Reveal Schemes: The Cryptographic Contract Behind Every Fair Bet

Read more

Bonus Contribution Rates: Why Not All Games Clear Wagering Equally

Read more

XRP Casino Payouts: Speed and Cost Data for Players

Read more