Provably Fair Guide

Provably Fair: Why It Matters and How It Works

The cryptographic system that lets you verify every single game outcome. No trust required.

What Is Provably Fair?

In a traditional online casino, you have no way to know if the outcome of your bet was genuinely random or secretly manipulated. You are trusting the house completely, and that trust is often misplaced. It is technically trivial for an online casino to alter results in their favor without you ever knowing.

Provably fair is the cryptographic solution to this problem. It is a system where both the casino and the player contribute to the randomness of every outcome. Neither side can predict or manipulate the result alone. And after a game is played, you can mathematically verify that the result was fair.

The core idea is simple:

fair result = operator's input (hashed) + customer's input

The casino commits to their input before you play. You provide your own input. The combination produces the result.

Because the casino's input is locked in advance (via a cryptographic hash), they cannot change it after seeing your input. And because your input is unknown to the casino until you bet, they cannot pre-calculate a result that favors the house beyond the stated edge.

This is not optional security theater. Provably fair is the minimum standard for any casino that wants to earn player trust. Any platform that does not offer it is asking you to gamble on faith alone. StratHub only supports games on provably fair platforms because verification is the foundation of data-driven play.

The Three Inputs

Every provably fair game result is determined by three variables. Each serves a specific purpose in ensuring neither side can cheat:

Server Seed (the casino's input)

A random 64-character hex string generated by the platform. Before you play, you receive an encrypted hash of this seed. This is the commitment: the platform cannot change its input after showing you the hash. You cannot reverse the hash to predict results. Only after you rotate your seeds is the original server seed revealed, allowing you to verify that the hash matched all along.

Client Seed (your input)

This is your contribution to the randomness. Your browser generates one automatically, but you should set your own. By choosing a unique client seed, you guarantee the platform did not know your input in advance. Both inputs are combined to produce the result, so neither side can control the outcome alone.

Nonce (the bet counter)

A number that starts at 0 and increases by 1 with every bet you make. The nonce ensures that even when the server seed and client seed stay the same, every single bet produces a completely different result. It resets when you rotate your seed pair.

Why does this matter?

The server seed hash is your proof that the game was fair. If the revealed server seed does not produce the same hash you were shown before playing, the casino cheated. It is that simple. This is why you should always note your hashed server seed before a session and verify it after rotating. StratHub's Seed Validator makes this verification instant.

How Seeds Generate Outcomes

The provably fair system uses HMAC-SHA256 — a cryptographic hash function — to combine all inputs into random bytes:

// The core formula:
HMAC_SHA256(server_seed, client_seed:nonce:cursor)
// Example:
server_seed = "a1b2c3d4...64chars"
client_seed = "MyCustomSeed123"
nonce = 42 // bet #42 since last rotation
output = random bytes → game result

The output bytes are then converted into game-specific results:

🎲
Dice

Bytes → number between 0.00 and 100.00 → compared to your target

💣
Mines

Bytes → shuffle 25 positions → first N positions are mines

🎱
Keno

Bytes → 10 unique numbers from 1-40 drawn sequentially

🚀
Crash

Bytes → crash multiplier using exponential distribution

🪙
Flip

Bytes → heads (≥0.5) or tails (<0.5)

🐍
Snakes

Bytes → board layout + dice roll results

📍
Plinko

Bytes → left/right at each pin → final bucket

How to Change Your Seeds

Change Your Client Seed

  1. Log in to Stake.us
  2. Click the Settings icon (gear) at the bottom of any game
  3. Go to Provably Fair or Fairness
  4. Find the Client Seed field
  5. Enter any text you want (make it unique and random)
  6. Click Save or Update

Rotate Your Server Seed

  1. Go to Settings → Provably Fair
  2. Click "Rotate Seed Pair"
  3. The current server seed is revealed (unhashed) so you can verify past bets
  4. A new server seed hash is generated for future bets
  5. The nonce resets to 0

Important Notes

  • • Changing client seed does NOT rotate the server seed
  • • You must explicitly click "Rotate" to get a new server seed
  • • Past bets can only be verified AFTER server seed rotation
  • • The nonce resets on server seed rotation, not on client seed change

Best Practices

Set your own client seed

Don't use the browser-generated default. Type something unique so your randomness input is truly yours.

Rotate seeds regularly

Every 10,000-25,000 bets is recommended. Some strategies (like Chromium V2) suggest every 15,000 bets.

Verify past results

After rotating, check a few past bets using Stake's verification tool to confirm fairness.

Don't share your client seed

While it can't be used to steal funds, sharing it reduces your unique randomness contribution.

Change seed after big loss streaks

While mathematically it doesn't change odds, a new seed pair creates a fresh sequence of outcomes.

Use StratHub's seed tracking

The extension tracks your current seed pair and nonce count, alerting you when it's time to rotate.

StratHub Seed Integration

The StratHub extension automatically tracks your seed data through its page-world interceptor:

  • Automatic detection: Reads your client seed, server seed hash, and current nonce from Stake's GraphQL responses
  • Nonce counter: Tracks how many bets since last rotation
  • Rotation alerts: Notifies you when nonce exceeds recommended thresholds
  • Seed display: Shows current seed info in the extension popup under Settings
  • Cloud sync: Seed data syncs to Supabase for cross-device access

Sources