GALABET FAIR / Under the surface
Mines
Explore a five-by-five board, then open the completed map. Your choices reveal the layout; they do not move the mines.
Interactive public-seed demonstration
25 TILES / 3 MINES / PUBLIC-SEED PRACTICE
0 safe picks · choose another tile
The seed is public in this exercise. Covered tiles are a learning interaction, not a secure live round.

Public inputs. Real calculations.
Each new example advances the nonce and runs @galabet/fair in your browser. Results are reproducible, and the seed is visible to everyone.
Inspect this Mines result · nonce 42
THIS EXAMPLE / NONCE 42
Keep the inputs.
Check the result.
This demonstration uses a public server seed. Its record checks the calculation; it does not establish when a live service published a commitment.
- Client seed
- galabet
- Fractions consumed
- 24
- Highest cursor
- 2
- Server seed commitment
- ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7
Revealed inputs and complete JSON
{
"spec": "GFS/1.0",
"profile": "single-player",
"game": "mines",
"params": {
"mines": 3
},
"serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
"clientSeed": "galabet",
"nonce": 42,
"commitment": "ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7",
"cursor": 2,
"result": [
9,
17,
22
],
"at": 0
}THE MAP AND THE CHOICES
Reveal the board.
Keep the history.
Tile labels shown to a player
[9, 17, 22]Zero-based indices in the record
One layout, many possible routes.
The library shuffles all 25 positions with 24 fractions. The first selected positions become mines, and the returned indices are sorted. Picking a different tile changes the path through that map.
A live round needs concealment.
The public exercise lets you inspect its inputs. A live service must keep the active seed and undisclosed layout on the server. Reveal them only when they cannot expose an unfinished board.
AFTER A SAFE PICK
Fewer tiles.
The same hidden mines.
A safe pick removes one safe tile from the unknown set. With three mines, the first safe-pick chance is 22/25. After one safe pick, it is 21/24. Move through the counts to see why the next decision has a different probability.
The browser needs your picks, not the buried layout.
Return the commitment, selected tiles and current state. Sending mine positions in a history response would disclose the board even if the visible grid still looked covered. The active server seed must remain private too.
visible: commitment, picks, state
withheld: mine positions, server seedOpen the map and retain the route.
The completed layout explains which tiles were mines. The ordered picks explain the route taken through it. A later seed reveal lets the verifier reproduce the original positions. The demo service defers the board's history record until completion and blocks seed changes or reveals during an active board.
REFERENCE EXAMPLE / NONCE 42
Inspect a layout after disclosure
import { play } from '@galabet/fair';
// Public example inputs. Never publish an active server seed.
const seeds = {
"serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
"clientSeed": "galabet",
"nonce": 42
};
const { result: mineIndices } = await play({
game: 'mines', ...seeds, params: { mines: 3 }
});
console.log('indices', mineIndices);
console.log('tile labels', mineIndices.map(index => index + 1));indices [9, 17, 22] tile labels [10, 18, 23]
These inputs are deliberately public. This is a completed-layout illustration, not an active session.
