SSL Secured·Provably Fair·Rankings powered by real deposit volume data·Updated Jul 2026·18+ Gamble Responsibly
Mines Verification · 8 Min Read · Jun 2026

HOW TO VERIFY PROVABLY FAIR MINES

AM
Alex Mercer · ProvenlyFair.com Editorial Team
Updated Jul 20268 min read
In Mines you reveal tiles on a 5×5 grid, hoping to dodge the hidden mines. The big fear is obvious: did the casino drop a mine under the tile I just clicked? A provably fair Mines game lets you prove every mine position was locked before the round started. This guide shows the exact Fisher-Yates shuffle that places mines from an HMAC-SHA256 hash, walks through a real worked example you can reproduce, and links you to our free Provably Fair Verifier tool.

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 Verifier

The 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:

  • 1
    Number 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.
  • 2
    Build the HMAC and read floats. The server seed is the HMAC key; the message is clientSeed:nonce:cursor. Each 4 bytes of HMAC_SHA256(serverSeed, "clientSeed:nonce:cursor") become a float in [0, 1) via byte₀/256¹ + byte₁/256² + byte₂/256³ + byte₃/256⁴. One 32-byte hash supplies 8 floats; the cursor increments if more are needed.
  • 3
    Place each mine without replacement. For every mine, take the next float and compute idx = floor(float × remaining), where remaining is 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 Tool

Worked 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.

InputValue
Server seedserverSeed123
Client seedclientSeed456
Nonce5
Mines3
  • 1
    Compute the HMAC. HMAC_SHA256("serverSeed123", "clientSeed456:5:0") =
    7d0adae1ffb0cccd1eca16cd233edaf08269a8576527dc986847daec38d9e48c
  • 2
    Mine 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.
  • 3
    Mine 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.
  • 4
    Mine 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:

CasinoHow to Find Your Seeds
StakeProfile icon → SettingsFairness. 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.GameOpen 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 & othersOpen 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.

Frequently Asked Questions

Mines uses HMAC-SHA256(serverSeed, clientSeed:nonce:cursor) to drive a Fisher-Yates style shuffle. The 25 tiles are numbered 0 to 24. For each mine, the next 4-byte float is multiplied by the number of tiles still remaining and floored to pick a position; that tile is removed from the pool so no mine repeats. The same seeds always produce the same mine layout, which is fixed before you click any tile. Confirm it with our verifier tool.
It proves every mine position was fixed by the server seed before the game started, and that no mine was moved under a tile you clicked. Because the server seed hash was committed in advance and you set the client seed, the layout is tamper-proof. Verification does not remove the house edge in the payout table, and it cannot force a casino to honour a withdrawal.
Fisher-Yates draws positions without replacement: after a tile is chosen for a mine it is removed from the remaining pool, so the same tile can never be picked twice. Multiplying each float by the shrinking count of remaining tiles keeps every still-available position equally likely, which is exactly what you need to place N distinct mines fairly on the 25-tile grid.
All mine positions are determined the instant the round is created, from the server seed, client seed and nonce. They are not decided as you reveal tiles. That is the whole point of verifying: you can prove after the fact that the mine under a tile you hit was already there, not dropped in response to your click.
Stake publishes this exact HMAC-SHA256 Fisher-Yates method for Mines, and Shuffle, BC.Game and many other crypto casinos use the same or a near-identical scheme. Our free Provably Fair Verifier reproduces the mine placement in your browser so you can independently check any Mines round.
AM
Alex Mercer
Alex covers crypto casinos and provably fair gaming for the ProvenlyFair.com Editorial Team. Specialising in cryptographic verification systems and transparency in online gambling.
Free Tool — Verify Any Mines Board
Verify Now