18+ only · Gambling involves risk of loss · We earn commissions from some links · Disclosure

How to Verify a Provably Fair Bet, Step by Step

Updated 4 min readBy the CryptoPlay Guide Editorial Team

18+ only. Contains affiliate links — we may earn a commission. Not for residents of the US, UK, France, Germany, Netherlands, Spain, Austria, Australia, Ontario or Vietnam. Not legal or financial advice.

In this guide (7)

“Provably fair” means you can check a result yourself instead of trusting the casino. This guide walks through a complete check with numbers you can reproduce on any computer, then shows how to do the same with your own bets in our provably fair verifier. 18+ only.

About the example values: the seeds below are our own example values, not seeds from any casino. We computed every output ourselves with Node.js and checked the hashes with sha256sum and openssl. The byte-to-result formulas are the ones Stake documents for Dice and Limbo; other casinos may use different formulas, so always compare with your casino’s fairness page.

What you need before you start

A provably fair bet uses three inputs:

InputWho chooses itWhen you see it
Server seedCasinoOnly its SHA-256 hash before betting; the seed itself after you rotate
Client seedYou (or a random default)Always
NonceCounter: 1st bet, 2nd bet, …Always

Before betting, write down (or screenshot) the server seed hash. After you rotate to a new seed pair, the casino reveals the old server seed. Only then can you verify past bets.

Step 1: check the server seed matches its hash

Example inputs:

  • Server seed (revealed): cryptoplayguide-example-server-seed-2026
  • Hash shown before betting: ea1e9ffa82b568d4ecb93488031e79bfe0cba227dbbe2b134c73e66079e78e91

On macOS or Linux:

printf %s "cryptoplayguide-example-server-seed-2026" | sha256sum

The output must be exactly the hash you saved. If even one character differs, the casino changed the seed after you bet, and nothing else in the check matters.

Step 2: recompute the HMAC-SHA256

The result comes from HMAC-SHA256, using the server seed as the key and client_seed:nonce:round as the message (round is 0 for Dice and Limbo):

printf %s "my-client-seed:1:0" | openssl dgst -sha256 -hmac "cryptoplayguide-example-server-seed-2026"

Expected output:

d6e37d4cd754f8752a46ef3f8c7bcd60434a1abe8a9ab09594833e9b21883b86

Step 3: turn the first 4 bytes into a number

Take the first 4 bytes of that output: d6 e3 7d 4c = 214, 227, 125, 76. Combine them into a number between 0 and 1:

214/256 + 227/256² + 125/256³ + 76/256⁴ = 0.83940871…

Step 4: convert the number into the game result

GameFormulaResult for nonce 1
Dice (0.00–100.00)floor(value × 10001) / 10083.94
Limbo (1% edge)max(1, floor(0.99 / value × 100) / 100)1.17×

Second example to check your method: same seeds, nonce 2, message my-client-seed:2:0. The HMAC starts with ad06e622, value 0.67588652…, Dice roll 67.59.

Check it with the verifier tool

You do not need a terminal. Open the provably fair verifier, choose Dice or Limbo, and paste the server seed, the saved hash, the client seed and the nonce above. You should see the hash marked as matching and the same 83.94 / 1.17× results. Everything runs in your browser; nothing is sent to us.

Then repeat with your own revealed seeds. To see why a fair game still loses money over time, try the risk of ruin simulator or read Dice odds and house edge.

Common mistakes

  • Checking before rotation. The active server seed is secret; you can only verify old seed pairs.
  • Wrong nonce. Many casinos start at 0, others at 1. Check your bet history.
  • Hidden spaces. A trailing space or newline changes the hash. Use printf %s, not echo.
  • Different formula. Crash, Plinko, Mines and other games use different byte handling. Use the casino’s documented formula.
  • Reading too much into it. A matching check proves this result was not changed after the commitment. It does not prove fast withdrawals, a fair house edge or a trustworthy operator. See the safety checklist.

If you play at Mint.io, compare its own fairness page with these steps before you rely on them; we have not verified Mint’s exact byte formula.

After reproducing a result, check the payout model separately with the payout and RTP audit. The Dice tables for 2% and 3% assumed edge show why a verifiable roll can still have a negative expected return.

The Limbo win chance table supplies a target-versus-probability comparison; it checks a mathematical model, not a server seed or an operator’s willingness to pay.

After reproducing a Plinko slot, assess its assumed probability and the full payout array in the Plinko odds calculator. A reproducible slot alone does not establish the table’s RTP.

A Keno verification also needs the game’s distinct-ball mapping. The Keno odds calculator gives a theoretical distribution for comparison, but does not reconstruct a seed or authenticate a draw.

After reproducing a Crash result, the Crash cashout calculator can illustrate fixed-target odds under an entered edge. It does not verify that the operator honors auto-cashout or reproduces its rounding.

MINT Status staking calculator

See what a staking level needs, with example numbers.

Frequently asked questions

Can I verify a bet before the server seed is revealed?

No. Before rotation you only have the hash of the server seed. You can verify a bet only after you rotate seeds and the casino reveals the old server seed.

Does a successful check mean the casino is safe?

No. It shows that this result matches the committed seed under the formula you used. It says nothing about withdrawals, licensing, solvency or whether the house edge is what you expect.

Are the seeds in this guide real casino seeds?

No. They are example values we made up and computed ourselves so anyone can reproduce the numbers. Use your own revealed seeds to check your own bets.

Ready to try Mint.io?

Compare Mint.io's own fairness documentation with these steps before using the example formula, and keep a fixed loss limit. Read our full Mint.io review, set a budget, and play responsibly.

Mint.io: the stablecoin casino we review
  • Deposit & withdraw in USDT or USDC: no price swings
  • No code needed: rewards in $MNTD token: rakeback, daily rewards, MINT Status staking
  • Casino, sportsbook & predictions in one account
Compare Mint's fairness documentation ↗

18+ · Sponsored · T&Cs apply · Not available in restricted regions

CryptoPlay Guide Editorial Team
CryptoPlay Guide Editorial Team

A small independent team that reads operator help pages, terms and third-party reviews, and links sources for every claim. We are not lawyers or financial advisers. We may earn affiliate commissions. About us & how we rate