Appearance
Provably fair
You don't have to trust that a spin was fair - you can prove it. Every result in PolySpins is generated with a commit‑reveal scheme you can verify yourself.
The idea in one line
The game locks in a secret result before you bet, shows you a tamper‑proof fingerprint of it, and reveals the secret afterwards so you can re‑compute the exact outcome. If the fingerprint matches, the result couldn't have been changed.
The three ingredients
| Ingredient | Who controls it | What it does |
|---|---|---|
| Server seed | The house (kept secret until revealed) | The secret randomness for your rounds. |
| Client seed | You (you can change it anytime) | Your input, so the house can't pick a server seed to target a specific outcome. |
| Nonce | Auto | A counter that increases by 1 each round, so every bet is unique. |
How a round is generated
1. Commit (before you play). The server picks a random serverSeed and publishes only its hash - the commitment:
commit = SHA-256(serverSeed)You see commit up front. Because SHA‑256 can't be reversed, the house is now locked in: it can't change serverSeed later without changing commit.
2. Roll (when you bet). The outcome comes from an HMAC of the seeds and the round's nonce:
digest = HMAC_SHA256(key = serverSeed, message = clientSeed + ":" + nonce)That digest is a long hexadecimal string. PolySpins reads it in chunks and maps each chunk to a game outcome - a reel symbol for slots, or a pocket for roulette - using uniform selection (values that would bias the result are skipped, so every outcome is equally likely).
3. Reveal. When you rotate your seed (or ask to reveal), the server shows the serverSeed. Now you can check everything.
Verify it yourself
- Check the commitment. Compute
SHA-256(serverSeed)and confirm it equals thecommityou were shown before the round. If it matches, the server seed is the one the house committed to. - Reproduce the result. Compute
HMAC_SHA256(serverSeed, clientSeed + ":" + nonce)and map it the same way to get the reels/number. It will match the result you saw - exactly.
You can do this with any standard crypto library, or use the built‑in checker.
In‑game fairness panel
While playing, press P to open the fairness panel. It shows your current commit, clientSeed, and nonce, lets you set a new client seed, and reveals the previous server seed so you can verify past rounds.
Why this is trustworthy
- The result is committed before you bet, never decided after.
- You influence every roll via your client seed, so the house can't cherry‑pick outcomes.
- Every round is independently reproducible from public values - no need to trust us.
Curious about your funds instead? See Safety.
