HOW TO VERIFY PROVABLY FAIR MINES
Verify Your Last Mines Board Right Now
Grab your server seed, client seed, and nonce from your casino's fairness page and paste them into our verifier. It reproduces the exact mine placement in your browser — completely free, no sign-up required.
Open Provably Fair VerifierThe Three Seeds and What Mines Verification Proves
Every provably fair Mines board is built from three inputs. The server seed is a random string the casino generates and keeps secret during play — but it commits to it in advance by publishing its SHA-256 hash, like a sealed envelope. The client seed is yours; you can set it to any value, which guarantees the casino could not have arranged the mines just for you. The nonce is a counter that increases by one with every game on that seed pair.
For Mines specifically, verification proves one thing precisely: every mine position was fixed before the game began, and no mine was moved under a tile you clicked. Because the server seed hash was published in advance and you chose the client seed, the whole board is locked the instant the round is created — it is not decided as you reveal tiles. After you rotate (retire) the seed pair, the casino reveals the unhashed server seed and you can recompute the exact layout. For the general mechanics across all games, see our complete guide to verifying provably fair results.
How the Hash Places Mines: The Real Algorithm
Mines on Stake — the operator that popularised this method and publishes the algorithm openly — places mines with a Fisher-Yates style shuffle driven by the HMAC-SHA256 hash. The same logic is implemented in the widely used open-source reference verifier lucasholder/fair, which is explicitly built to match Stake's output. Here is the full chain:
- 1Number the grid. The 5×5 board has 25 tiles, numbered 0 to 24 from left to right, top to bottom. Start with a pool of all 25 positions still available.
- 2Build the HMAC and read floats. The server seed is the HMAC key; the message is
clientSeed:nonce:cursor. Each 4 bytes ofHMAC_SHA256(serverSeed, "clientSeed:nonce:cursor")become a float in [0, 1) viabyte₀/256¹ + byte₁/256² + byte₂/256³ + byte₃/256⁴. One 32-byte hash supplies 8 floats; the cursor increments if more are needed. - 3Place each mine without replacement. For every mine, take the next float and compute
idx = floor(float × remaining), whereremainingis how many tiles are still in the pool. Select the tile at that index, record it as a mine, then remove it from the pool so it can never be chosen again. The next float multiplies by the now-smaller count (25, then 24, then 23, …).
That "remove after selecting" step is the heart of Fisher-Yates: it guarantees you get N distinct mine positions with every still-available tile equally likely. The result is a complete, fixed map of mines that existed before you touched a single tile.
Skip the Maths — Let the Tool Do It
You do not have to compute HMACs by hand. Paste your seeds, nonce, and mine count into our verifier and it reproduces the Fisher-Yates placement above instantly, in your browser, with nothing sent to a server.
Launch the Verifier ToolWorked Example You Can Reproduce
Let us place real mines from real inputs. These are genuine values computed with HMAC-SHA256 — paste them into any HMAC tool (or our verifier) and you will get the identical hash. We will place 3 mines.
| Input | Value |
|---|---|
| Server seed | serverSeed123 |
| Client seed | clientSeed456 |
| Nonce | 5 |
| Mines | 3 |
- 1Compute the HMAC.
HMAC_SHA256("serverSeed123", "clientSeed456:5:0")=7d0adae1ffb0cccd1eca16cd233edaf08269a8576527dc986847daec38d9e48c - 2Mine 1 — pool of 25. First 4 bytes give float 0.488447. floor(0.488447 × 25) = floor(12.21) = index 12 → tile 12 (row 3, col 3). Remove it; 24 tiles remain.
- 3Mine 2 — pool of 24. Next 4 bytes give float 0.998792. floor(0.998792 × 24) = floor(23.97) = index 23 → the 24th remaining tile, which is tile 24 (row 5, col 5). Remove it; 23 tiles remain.
- 4Mine 3 — pool of 23. Next 4 bytes give float 0.120271. floor(0.120271 × 23) = floor(2.77) = index 2 → the 3rd remaining tile, which is tile 2 (row 1, col 3). Three mines placed.
Result: these seeds at nonce 5 with 3 mines place them on tiles 2, 12, and 24 — every single time, on any machine. If you had clicked tile 12 and hit a mine, you could prove afterwards that the mine was already there from the start, not dropped under your click. That reproducibility is the entire point.
Where to Find Your Mines Seeds
Before you can verify, you need the unhashed server seed, which the casino only reveals once you rotate (retire) the seed pair. Here is where to look on the main provably fair platforms:
| Casino | How to Find Your Seeds |
|---|---|
| Stake | Profile icon → Settings → Fairness. Note your active client seed and the next server seed hash, then click Rotate / New Seed to reveal the previous unhashed server seed. The Mines bet detail shows the nonce and mine count. |
| Shuffle & BC.Game | Open Profile / account menu → Fairness. View the current seed pair, then rotate to unhash the old server seed. Open Game History for the per-game nonce. |
| Roobet & others | Open Game History, click the Mines bet, then Fairness / Reveal Seeds. The server seed is shown after the pair is rotated, alongside the client seed and nonce. |
What This Proves — and What It Does Not
Provably fair verification is powerful, but it is precise about what it guarantees. Be clear on both sides:
- ✓It proves the mines were not moved after your clicks. Every position was committed by the server seed hash before the round, so the casino could not drop a mine under a tile you revealed.
- ✓It proves the casino used the seeds it claimed. A matching layout confirms the published server seed really does hash to the committed value and produces the exact board you played.
- ✗It does NOT remove the house edge. The edge lives in the payout table for each safe tile. A fair, predetermined board and a long-term mathematical edge for the casino coexist — verification confirms fairness, not profitability.
- ✗It does NOT guarantee you get paid. Provably fair maths says nothing about whether a casino will process your withdrawal or treat you fairly elsewhere. For that, choose a licensed, reputable operator — see our best provably fair casinos.
Key Takeaways
Provably fair Mines places mines with a Fisher-Yates shuffle seeded by HMAC-SHA256(serverSeed, clientSeed:nonce:cursor): each 4-byte float gives idx = floor(float × remaining), and the chosen tile is removed so no mine repeats. Our worked example (serverSeed123 / clientSeed456 / nonce 5, 3 mines) places mines on tiles 2, 12 and 24, reproducibly. Check your own boards with our Provably Fair Verifier.