Mines: how the mine positions are chosen
How a Stake-scheme Mines board places its mines using floats and selection without replacement, and how survival odds turn into the paid multiplier.
Disclosure: VerifyRoll is sponsored by Craze, a competitor of the operators whose published RTP appears below. Figures here are computed or taken from what operators publish, dated; nothing is estimated.
How the result is derived
Under the Stake scheme every result starts from HMAC-SHA256(server seed, “clientSeed:nonce:cursor”), read four bytes at a time into floats in [0, 1). Mines consumes one float per mine.
- Start with the 25 tiles numbered 0 to 24 (row-major: 0 is top-left, 24 bottom-right).
- For each mine, take the next float and compute floor(float × tiles remaining). That index into the remaining list is the mine's tile; remove it from the list.
- Repeat until every mine is placed. Because tiles are removed as they are chosen, no two mines can land on the same tile.
for i in 1 … mines: idx = floor(float_i × |remaining|); mine_i = remaining[idx]; remaining.splice(idx, 1)
Payout rule and where the edge comes from
Every safe tile you reveal multiplies your stake. Surviving k picks with m mines has probability Π (25 − m − i) ÷ (25 − i) for i from 0 to k − 1.
A fair multiplier would be 1 ÷ that probability. A 99% RTP game pays 0.99 ÷ probability, rounded to the operator's convention.
Source of the edge. Mine placement is uniform over all arrangements. The edge is the 0.99 factor applied to the fair multiplier at every step, so it does not matter when you cash out.
Worked example
Computed on the server by the same functions the verifier runs, from the example values the verifier's “Load example values” button uses. These are not seeds from a real round.
- server seed
- 2b4d2f1a7c9e0f3b8a6d5c4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a
- client seed
- verifyroll
- nonce
- 7
- mines
- 3
- HMAC-SHA256(server seed, “verifyroll:7:0”)81727d41db6b44706ddfd681ab9cd0124cc482392adbbdda8ac8ac626566bf1a
- Floats (3): 0.50565322 0.85710552 0.42919675
- pick 1: floor(0.50565322 × 25) = 12 → tile 12
- pick 2: floor(0.85710552 × 24) = 20 → tile 21
- pick 3: floor(0.42919675 × 23) = 9 → tile 9
Published RTP by operator
| Stake | Shuffle | BC.Game | Craze |
|---|---|---|---|
| 99% | 99% | 99% | — |
Checked 2026-09-23. “—” means not offered or not published. The figure in your game's info panel wins.
Questions
- Does picking order or position change the odds?
- No. The mines are fixed before your first click and every unrevealed tile is equally likely to hold one. Any strategy about which tile to pick next is decoration.
- Why does the verifier show mines, not my clicks?
- Your clicks are not part of the provably-fair record; only the board is. The verifier recomputes the board so you can check the tile you hit really held a mine.
Next
- Survival odds and multipliers for any board
- Verify a Mines bet of your own, or by operator: Stake Mines verifier · Shuffle Mines verifier
- Play Mines for free on PlinkoLab (play money, same derivation)
- House edge for every game and operator
last reviewed 2026-09-23 · derivation as implemented in @craze/fairness