🦙
Llamabet
Games▾
More·Docs▾
Sui Mainnet
Llamabet
OverviewRoadmapThe TeamRewards & $LLAMATerms & ConditionsPrivacy Policy
Blackjack
OverviewMechanicsHow to Play
Roulette
OverviewHow to Play
Poker
OverviewHow to PlayProvable Fairness
Baccarat
OverviewHow to PlayMechanics
Slots
OverviewHow to PlayMechanics
Dice
OverviewHow to Play
Resources
Why Llamabet?Crypto Gambling on SuiPlay ResponsiblyTransparencyFAQs
Docs/Poker/Provable Fairness

Provable Fairness

In most online poker rooms, you simply have to trust that the site shuffled honestly and didn't change the cards once bets were in. At Llamabet you don't have to trust us — every hand is locked onto the Sui blockchain before a single chip is bet, then opened up afterwards so anyone can check it. Here's how it works, in plain English.

✉️The sealed-envelope idea
Think of every hand's deck like cards sealed in a glass envelope and handed to a public notary before you bet. We can't swap the cards afterwards — the sealed envelope is already out of our hands. When the hand ends, the envelope is opened for everyone to see. If the cards inside don't match what was sealed, the whole thing is provably broken. That "notary" is the Sui blockchain.

How every hand is dealt

  1. 1
    Shuffle — the moment a hand starts, the deck is shuffled into a specific secret order.
  2. 2
    Lock it on Sui (before any betting) — a fingerprint of that shuffled deck is signed by our dealer and published to the Sui blockchain — committed in advance, so it can never be changed once you've bet.
  3. 3
    Deal & play — hole cards and community cards come off that exact locked deck. Nothing is decided on the fly.
  4. 4
    Reveal — when the hand finishes, the deck's secret is published on-chain so the fingerprint can be re-checked.
  5. 5
    Anyone can verify — you (or anyone) can recompute the deck from the revealed secret and confirm it matches what was locked in step 2. Try the verifier →

The four things that make it fair

🔒
Committed before you bet
The deck's fingerprint is on Sui before betting opens. We can't see how a hand is going and then change the cards — the outcome is fixed the instant it's dealt.
🖊️
Signed by the dealer
A dedicated dealer key signs every deck, and the Sui smart contract checks that signature on-chain. A deck we didn't produce simply won't be accepted.
🔗
Chained hand-to-hand
Each hand mixes in the previous hand's revealed secret, so hands can't be secretly reordered, replayed, or cherry-picked. The whole session forms one unbroken, checkable chain.
🔎
Verifiable by anyone
The commitment and the reveal are public on Sui forever. You never have to take our word for it — the math either checks out or it doesn't.

What this guarantees

In plain terms, provable fairness locks in three things:

  • Guaranteed: the deck for a hand is fixed and published before betting, so the house cannot change your cards or the outcome after you've bet.
  • Guaranteed: every deal is publicly recorded on Sui and can be independently recomputed and verified by anyone, at any time.
  • Guaranteed: the shuffle is genuinely random and can't be quietly reordered across a session.
🔎Verify a real hand yourself
Copy the Hand ID from any hand's fairness panel and paste it into the verifier — it fetches the committed seed hash, the revealed seed and the chain link automatically, then rebuilds the exact deck and deal in your browser. Verification unlocks the moment the hand settles and its seed is revealed; a hand still in play can't be verified by anyone. Open the hand verifier →

Where to see it while you play

At the table, tap the "Provably fair" badge to open the fairness panel. It shows the deck's fingerprint that was committed before the hand, the secret revealed after it, and a direct link to the Sui blockchain explorer so you can see the on-chain record for yourself.

🃏New to Texas Hold'em?
If you're still learning how a hand plays out — blinds, betting rounds, and hand rankings — start with the How to Play guide, then come back here to see how we keep it honest.
🔧 Technical details — the exact algorithm

For developers and curious players: here is precisely how a deck is derived. The server and the in-browser verifier run byte-for-byte identical code, so you can reproduce any deal yourself.

1. The only source of randomness

Each hand begins with 256 fresh bits from the operating system's cryptographic RNG. This is the only randomness in the system — everything after it is deterministic, which is exactly what makes a hand reproducible.

serverSeed = randomBytes(32)   // 256-bit OS CSPRNG, one per hand

2. Commit → chain → shuffle → reveal

seedHash = SHA-256(serverSeed)                     // committed + ed25519-signed on-chain BEFORE bets
deckSeed = SHA-256(serverSeed | prevRevealedSeed)  // chains in the previous hand
deck     = FisherYates(52, HMAC-SHA256(deckSeed, counter))
// after the hand: reveal serverSeed → anyone checks SHA-256(serverSeed) == seedHash

Mixing in prevRevealedSeed — the previous hand's revealed seed, or genesis for a table's first hand — chains every deck to the one before it, so hands can't be secretly reordered or replayed.

3. The shuffle

  • Random stream: HMAC-SHA256, keyed by the seed, over an incrementing counter (0, 1, 2, …) yields an endless stream of bytes, read 4 at a time as a 32-bit number. It's a standard, well-studied way to stretch one seed into unlimited unpredictable output (the HMAC-DRBG family).
  • No bias: to pick a card position in [0, n) we use rejection sampling — discarding the small numeric tail that would otherwise slightly favour low positions — so every one of the 52! possible orderings is exactly equally likely.
  • Fisher–Yates: the classic unbiased shuffle — walk the deck from the last card to the first, swapping each with a uniformly-chosen earlier card.

4. How the deck becomes cards

Cards are dealt from the end of the shuffled deck, with no burn cards:

  • Hole cards: two per seat, in dealer order starting at the small blind.
  • Community cards: the flop (3), turn (1), and river (1), in that order.
🧮Reproduce it yourself
The full implementation lives in poker-server/src/engine/deck.ts, with an identical browser copy in pokerVerify.ts (proven equal by test). The hand verifier runs that exact code in your browser — paste a hand's seed hash and revealed seed and it rebuilds the deck card-for-card.

Common questions

How do I know the house didn't change my cards?
Because the deck's fingerprint is published to the Sui blockchain before betting opens. Blockchain records can't be edited after the fact, so the cards are locked in the moment the hand starts — long before anyone knows how it will play out.
What is a "seed hash" and a "revealed seed"?
The seed is the secret used to shuffle the deck. Before the hand we publish only its hash (a fingerprint that gives nothing away). After the hand we publish the seed itself. Anyone can hash the revealed seed and confirm it matches the fingerprint — proof the deck was never swapped.
Do I need to be technical to check a hand?
No. Copy the two values from the fairness panel into our verifier and it does the math for you, rebuilding the exact deck on screen. Technical players can also reproduce it independently from the public on-chain data.
What does "on-chain dealer" mean?
A dedicated dealer key signs each hand's committed deck, and the Sui smart contract verifies that signature on-chain before the hand and checks the reveal after. It's the foundation for a future upgrade where dealing moves into secure hardware so the cards are hidden from everyone, including us.
Does this cost me anything?
No. The house pays the small on-chain fees for committing and revealing every hand (about 0.002 SUI per hand). Verifying a hand yourself is completely free.
← Previous
How to Play
Poker
Next →
Overview
Baccarat
© 2026 Llamabet · The provably-fair casino on Sui · Play responsibly — 18+