Provably fair · Seeds explained

How Stake seeds work

Three inputs make every roll: a server seed Stake commits to by hash, a client seed you choose, and a nonce that counts your bets. Here is what each one does, what it protects you from, and a demo you can play with.

Server seed

Random 32 bytes on Stake's side. You see only its SHA-256 hash until you rotate — so Stake can't change it later without the hash mismatching.

Client seed

Any string you set (Stake makes one by default). It is chosen after the server seed is committed, so Stake can't tailor a seed to it.

Nonce

Starts at 0 for a new pair and increases by 1 every bet. Same pair + same nonce always gives the same roll.

From inputs to a roll

HMAC-SHA256(key = server seed, message = client seed : nonce : round) → first 4 bytes → b₀/256 + b₁/256² + b₂/256³ + b₃/256⁴ → a float in [0, 1). Dice multiplies by 10001, floors, divides by 100. Every other Original reads the same stream in its own way — see the verifier for each game's formula.

Live demo · your word changes the roll

type to see the roll change…

Why nobody can steer a roll — in either direction

  • Stake can't adapt to you. The hash of the server seed is on screen before your word exists. Producing a different seed with the same hash is a second-preimage attack on SHA-256: about 2²⁵⁶ tries. Not hard — impossible.
  • You can't look ahead. The only unknown is the server seed, revealed after you leave it. Nothing "reverses" a hash; the same fact secures Bitcoin. Predictor sellers are scammers.
  • Words don't change odds. "Run", "lucky-monday" or a random string all draw from the same distribution — chance% to win, 1% house edge. Only the sequence differs.

What the client seed does buy you is reproducibility: with the revealed pair you can rebuild every roll of a session and prove they were fixed before your first bet. The DiceStrats extension's ⚙ Seeds panel rotates to a keyword or a list of your own words automatically, and the verifier rebuilds the rolls.

Seed cracker · try to brute-force a server seed

Paste any 64-hex server seed hash (or use the demo one). Your browser fires random 256-bit guesses at it with real SHA-256 — no simulation. There are 2²⁵⁶ ≈ 1.16 × 10⁷⁷ possibilities, so it will never land one. That gap is provably fair.

sha256_bruteforce.js — READY paste a hash and press Start

Frequently asked

Can I choose my own client seed on Stake?

Yes. Fairness → Seeds → Client seed: type any word and rotate. In the DiceStrats extension, the ⚙ Seeds panel rotates to a keyword or a list of your own seeds automatically.

Can Stake adapt the outcome to my strategy?

No. The server seed's SHA-256 hash is shown before your client seed exists, and every roll is HMAC(server seed, client:nonce). To change a roll after the fact Stake would need a different server seed with the same hash — a second-preimage attack on SHA-256, which is computationally impossible.

Can I know the next roll in advance?

No. The one unknown is the server seed, and you only ever see its hash until you rotate. Reversing a SHA-256 hash is the same impossibility that protects Bitcoin. Anyone selling a Stake predictor is scamming you.

Does the word I pick change my odds?

No. Every client seed gives a different sequence from the same distribution: chance% to win each bet, 1% house edge. A keyword changes which rolls you get, never how many you win in the long run.

What does rotating the seed do?

It reveals the old server seed (so you can verify every bet made with it) and starts a new pair at nonce 0. It does not reset luck — the new pair is just as random as the old one.

Same rolls, smarter bets.

The DiceStrats extension runs creator strategies on your own Stake account, with take-profit and stop-loss armed by default and a ⚙ Seeds panel that rotates to a client seed you choose. Free with promo code DICESTRATS.

Open the marketplaceStake with code DICESTRATS