Server Seed vs Client Seed Explained — Provably Fair Crypto Casino Guide

Published:

Aleksandar Angelov March 1, 2026

Server Seed vs Client Seed: What They Are and Why Both Matter

Understanding the provably fair algorithm starts with understanding seeds. Every provably fair game result is determined by combining two pieces of randomness — one from the casino, one from you. This guide explains exactly what each seed does, why neither alone is enough, and what it means when a casino handles seeds poorly.


What Is a Server Seed?

A server seed is a random string generated by the casino’s server before any bet is placed. It is the casino’s contribution to the randomness that determines a game’s outcome.

You never see the server seed directly while it is active. Instead, the casino shows you a hashed version: SHA-256(serverSeed). This 64-character hex string is the casino’s cryptographic commitment. They have, in effect, said: “Here is a fingerprint of the number we’ll use. We can’t change it without the fingerprint changing.”

Because SHA-256 is a one-way hash function, it is computationally infeasible to reverse the hash back to the original seed. The casino has locked in their randomness without revealing it.

After your betting session (or after a seed rotation), the casino reveals the original server seed. You can then hash it yourself and confirm it matches the commitment you were shown at the start. If it does, the casino’s randomness was fixed before you bet — they could not have changed it to manipulate the outcome.

Why the commitment matters: Without the hash commitment shown in advance, a dishonest casino could generate a server seed after seeing your bet and reverse-engineer one that causes you to lose. The commitment prevents this. Changing the server seed would change its hash, and the mismatch would be immediately detectable.


What Is a Client Seed?

A client seed is a string that you control. It is your contribution to the game’s randomness.

Every legitimate provably fair casino lets you view and change your client seed. The default is usually randomly generated by your browser. But you can replace it with anything — a phrase, a number, a random string you generate yourself.

Your client seed is combined with the server seed and nonce to produce the final hash that determines the game result. Because the casino doesn’t know your client seed when they commit to their server seed hash, they cannot have calculated an outcome that accounts for it. The two-seed system makes manipulation by either party impossible when implemented correctly.

Practical consequence: If you accept the casino-generated default client seed without changing it, and if (hypothetically) the casino could predict or control what seed they generate for you, then the independence of the system is compromised. Setting your own client seed eliminates this attack vector entirely.


Why the Two-Seed System Exists

The two-seed system solves a fundamental trust problem. Consider the alternatives:

Casino seed only: The casino generates a seed and uses it to determine outcomes. Players must trust the casino hasn’t pre-calculated favorable outcomes. Even with a committed hash, the casino chose the seed knowing all their game parameters. This is better than nothing, but the casino controls 100% of the randomness.

Player seed only: The player generates the seed and the outcome is derived from it. Now the player can theoretically calculate which seed produces which result, then choose accordingly. The casino can’t win.

Two seeds combined: Neither party controls the full outcome. The casino commits to their seed before knowing yours. You provide your seed after the casino’s commitment is fixed. The final result is the irreversible product of both. Neither party can unilaterally determine the outcome.

This is the core trust guarantee of provably fair gambling. It is the reason the two-seed model (plus nonce) is essentially universal among legitimate provably fair implementations.


The Seed Rotation Process

A server seed doesn’t last forever. Seed rotation is the process of ending one server seed chain and starting a new one.

Why rotation exists: If you played 10,000 bets on a single server seed, a sophisticated attacker who obtained that seed (through a data breach, for example) could retroactively calculate every outcome. Rotation limits the exposure of any single seed.

What happens during rotation:

  1. You (or the system automatically) trigger a seed rotation
  2. The casino reveals the current server seed in plaintext
  3. You can now verify any bet from the previous seed chain
  4. A new server seed is generated and its hash is shown to you
  5. The nonce resets to 0
  6. A new session begins

How to rotate on Stake: Log in → Settings → Provably Fair → “Rotate Seed Pair”. You’ll see the current server seed hash change, and the old server seed will be revealed for verification.

How to rotate on BC.Game: Navigate to any in-house game → click the fairness shield icon → “Change Seed”. The old seed is revealed; a new hash is shown.

Best practice: Rotate your seed pair at the start and end of each session, and whenever you change your client seed. Keep a record of your seed chains if you want to verify past bets later.


What the Nonce Adds

Without the nonce, every bet within a seed chain would produce the same outcome. The nonce is a counter — starting at 0 and incrementing by 1 with each bet — that ensures each round is unique even when seeds remain constant.

The nonce prevents replay attacks: if an attacker knew your server seed and client seed but not which nonce value produced which outcome, they couldn’t selectively reproduce specific results.

The nonce also lets you verify any individual past bet: combine the revealed server seed + your client seed + the bet’s nonce value, hash them, and the result should match what was recorded. You don’t have to verify bets sequentially — you can jump to any bet number directly.


How to Change Your Client Seed (With Real Casino Examples)

Changing your client seed is simple and takes under a minute. Here’s how to do it on the two most popular provably fair casinos.

On Stake.com:

  1. Log into your account
  2. Click any in-house game (Dice, Plinko, Mines, etc.)
  3. Click the shield/fairness icon (usually below the game)
  4. You’ll see your current client seed and server seed hash
  5. In the “Client Seed” field, delete the existing value and type your own
  6. Click “Update” — the nonce resets to 0 within the current server seed chain

Note: changing your client seed does NOT rotate the server seed. You need to separately trigger seed rotation to get a new server seed.

On BC.Game:

  1. Log into bcgame.io and open any in-house game
  2. Click the fairness/provably fair icon (shield symbol near the bet controls)
  3. Click “Change Seed”
  4. Enter your preferred client seed in the field provided
  5. Confirm — the old server seed is revealed and a new one begins

What client seed to use: Any random string works. Some players use a phrase, others use the output of a random string generator. The key is that it should be something the casino couldn’t have predicted. my-seed-2026-session-1 is perfectly fine.


Red Flags: What It Means If a Casino Doesn’t Let You Change Your Seed

A casino that claims to be provably fair but doesn’t allow players to change their client seed is, at best, providing a weaker form of provably fair — and at worst, using the terminology dishonestly.

Red flag 1: No client seed interface. If you cannot find a seed management section in the fairness tools, the casino is either not truly provably fair or has a poor implementation. Legitimate provably fair casinos always expose seed management prominently.

Red flag 2: Server seed hash not shown before betting. The commitment (the hash of the server seed) must be shown before the game round, not after. If it’s only shown in a history log after the fact, the commitment model is broken — the casino could generate seeds retroactively.

Red flag 3: No seed history. You should be able to access all your previous server seeds (after rotation/revelation) and client seeds. If this history isn’t available, you can’t verify past bets.

Red flag 4: “Provably fair” badge with no documentation. A casino that mentions provably fair in marketing but doesn’t explain their specific algorithm, hash function, or seed combination method is using the term as a marketing claim, not a technical guarantee.

Red flag 5: Verification tool that always returns “fair.” If a casino’s built-in verifier never shows a discrepancy regardless of input, it’s not doing real verification. Always use an independent tool — or verify manually using a browser console — for any bet you actually want to audit.


Frequently Asked Questions

Can I use the same client seed forever?

You can, but it’s not recommended. Using the same client seed for extended periods means more data is generated under that seed, increasing the potential impact if the seed is ever compromised. Rotating seeds at the start of each session is good practice.

What happens to my pending bets if I rotate seeds mid-session?

Seed rotation applies from the next bet. Any bets already placed in the current round are settled using the existing seed chain. There is no retroactive effect.

Can the casino see my client seed before I place a bet?

Yes — the client seed is transmitted to the casino’s server when you place a bet (it needs to be combined with the server seed). The key protection is that the casino has already committed to their server seed hash before you provide your client seed for a given round. So they cannot change the server seed in response to your client seed.

What if a hacker intercepts my client seed?

An intercepted client seed on its own doesn’t help an attacker, because the game outcome also depends on the server seed, which the casino controls. An attacker who intercepts your client seed still cannot predict or manipulate game outcomes.

Is there a way to verify bets without using the casino’s tool?

Yes. Use our Provably Fair Verifier — it runs entirely in your browser and doesn’t transmit data to any server. Or verify manually in a browser console:

const crypto = require('crypto');
const hmac = crypto.createHmac('sha256', serverSeed);
hmac.update(`${clientSeed}:${nonce}`);
console.log(hmac.digest('hex'));

E

Editorial Team

Independent, data-driven crypto casino reviews.

18+

Gamble Responsibly — 18+ Only

Gambling should be entertainment, not a source of income. If you're struggling, seek help: BeGambleAware · GamCare · Gambling Therapy

Read Next

A
Aleksandar Angelov

Crypto Gambling Expert

Independent, data-driven crypto casino reviews.