Minefield uses a commit-reveal scheme with client nonces to guarantee fairness. Neither the server nor the player can manipulate the outcome.

How It Works

  1. Server commits: The server generates a random 32-byte seed and commits SHA-256(seed) onchain. The seed itself remains hidden.
  2. **Player picks with nonce:**The player picks a tile and submits a random 32-byte client_nonce. This nonce is stored onchain.
  3. Server reveals: The server reveals the raw seed onchain. The program verifies:
SHA-256(revealed_seed) == stored_commitment
  1. Mine placement: Mine position is determined using:
keccak256(server_seed || client_nonce)
  1. Repeat per row: Steps 1–4 repeat for every row. Each row has its own:

Why This Is Fair

keccak256(server_seed || client_nonce)

Neither side can control the outcome alone.

Post-Game Verification

After a game ends, players can verify every row.