Provably Fair Gambling Explained: How to Check a Hash (Tai Xiu MD5 Included)
October 5, 2026
Provably fair is a way for an online game to prove that the result of a round was fixed before you bet and was not changed afterwards. The game publishes a fingerprint of the result (a hash) before the round, then reveals the original data after it. Anyone can hash that data again and check that the two fingerprints match. This guide explains how it works, walks through two examples you can re-run yourself, and covers the Vietnamese version you may know as tài xỉu MD5.
What is a hash?
A cryptographic hash function such as MD5 or SHA-256 turns any input into a fixed-length string: 32 hexadecimal characters for MD5, 64 for SHA-256. Two properties make it useful here:
- One-way. Going from the input to the hash is easy; going from the hash back to the input is not practical. A hash is not encryption, so there is nothing to “decrypt”.
- Sensitive to every character. Change one character of the input and the whole hash changes. Any edit to the data becomes visible the moment you compare.
How provably fair works: commit, bet, reveal

- Commit. Before the round, the casino creates a secret server seed (and, in simple games, the result itself) and shows you only its hash.
- Bet. You place your bet. You can see the hash but not the data behind it, so you cannot know the result. Many games also let you set your own client seed, so the casino cannot pick a result in advance that suits it.
- Reveal. After the round, the casino reveals the server seed. You hash it yourself and compare with the hash you were shown. If they match, the round’s input was fixed before you bet.
Example 1: tài xỉu MD5
“Tài xỉu MD5” is the name used in Vietnam for online sic bo (tài xỉu) rounds that publish an MD5 hash before each roll. In the simplest form the hash covers the dice result plus a secret string. Suppose a round’s dice are 3-6-2 and the secret is a3f5c9d1e7b2. The revealed string is:
3-6-2|a3f5c9d1e7b2
Its MD5 hash, the value shown before the round, is 3a282ae99bb79ffac0f411a2fd48ec0f. Check it yourself in one line:
- macOS:
md5 -s "3-6-2|a3f5c9d1e7b2" - Linux:
echo -n "3-6-2|a3f5c9d1e7b2" | md5sum
The -n matters: without it, echo adds a line break and the hash comes out completely different. Now change the last die from 2 to 1 (3-6-1|a3f5c9d1e7b2) and the hash becomes 354f62563298b260bd9a30922a0ede65, with nothing in common with the first. That is why a result cannot be swapped after the hash is published. The Vietnamese guide covers this format in more detail: Tài xỉu MD5 là gì.
Example 2: server seed, client seed and nonce
Crypto-casino games usually use SHA-256 and three inputs: the server seed, your client seed, and a nonce that counts your bets (1, 2, 3…). A common scheme works like this:
- Before you play, the casino shows the SHA-256 hash of its server seed. For the server seed
7f3a9c2e51b84d06that hash is32d9fc9ed3d9a02d36b4cf79e020ad9f63c43928b8e1331972c8a34b233e5fcb. - Your round is computed as HMAC-SHA256 with the server seed as the key and
client seed:nonceas the message. With client seedlucky7and nonce 1 the output startse67bd5e1. - The game turns those first 8 hex characters into a number:
e67bd5e1is 3,866,875,361, and dividing by 232 gives 0.9003. Scaled to a 0–100 roll that is 90.03; scaled to one die (×6, rounded down, +1) it is a 6.
To check it: echo -n "7f3a9c2e51b84d06" | shasum -a 256 reproduces the committed hash, and echo -n "lucky7:1" | openssl dgst -sha256 -hmac "7f3a9c2e51b84d06" reproduces the round. The exact formula for turning the hash into a result differs from game to game, and a provably fair game publishes its own; use that one when you verify.

What provably fair proves, and what it does not
| It proves | It does not prove |
|---|---|
| The round’s input was fixed before your bet | That the payout table is generous |
| The result was not edited after the hash was shown | What the next result will be |
| Your client seed was used, if you set one | That the game has a positive return for you |
The house edge is still there; it is built into the payouts, not into the randomness. BC.GAME, for example, publishes a 1% house edge for its own Crash. A verified round is a fair draw from a game whose long-run return is still below 100%. See crash games for how RTP and cash-out interact.
Can you predict a provably fair game from its hash?
No. The published hash is one-way, so it gives away nothing about the result, and you cannot reverse SHA-256 or MD5 to read the seed early. Tools that claim to “decode” tài xỉu MD5 or predict the next roll cannot do what they promise, because the information is not in the hash. Past results do not help either: each round comes from a new seed or nonce.
Where to play provably fair games
- BC.GAME: its BC Originals range is provably fair, including Crash, Fast Crash and Plinko. For Crash, BC.GAME publishes the pre-generated hash chain and the verification algorithm.
- 22bet: carries Spribe’s Aviator, whose rounds use a provably fair system you can check after each round. See Aviator.
Play responsibly
Provably fair means the draw is honest, not that it favours you. Set a budget before you play, treat it as entertainment with a cost, and stop when the budget is gone. Online casinos are for adults 18 and over.
BC.GAME
22bet
Provably fair FAQ
What does provably fair mean?
It means a game lets you check that each result was fixed before you bet and not changed afterwards. The game shows a hash of its secret seed before the round and reveals the seed after it; you hash the seed yourself and compare.
What is tài xỉu MD5?
It is the Vietnamese name for online sic bo (tài xỉu) rounds that publish an MD5 hash before each roll. After the roll, the original string (dice result plus a secret) is revealed and anyone can hash it again to check it matches.
Can a tài xỉu MD5 hash be decoded to predict the result?
No. MD5 is a one-way hash, not encryption, so the published hash contains no readable information about the result. Tools that claim to decode it or predict the next roll cannot work.
How do I verify a provably fair bet?
Take the revealed server seed, hash it with the algorithm the game names (for example SHA-256) and check it matches the hash shown before the round. Then recompute the result from the server seed, your client seed and the nonce using the formula the game publishes.
Does provably fair mean I can win?
No. It proves the draw was not altered, but the house edge is built into the payouts. BC.GAME, for example, publishes a 1% house edge for its Crash game.