DUELPOKER
LIVEWaiting for the next result…
PROVABLY FAIR

Every deal is verifiable

DuelPoker never decides a hand behind closed doors. The server commits to a shuffled deck before you play and reveals the proof afterward, so you can confirm — cryptographically — that the cards were fixed in advance and dealt honestly.

How it works

01
Commit before the deal
When a game is created, the server generates a random 32-byte seed and immediately publishes only its SHA-256 hash — the seedHash. You see this commitment before any card is decided, so the outcome is locked in and cannot be changed later.
02
Shuffle from the seed
The 52-card deck is shuffled deterministically with a Fisher-Yates pass. Each swap index is driven by HMAC-SHA512(seed, index), so the exact same seed always produces the exact same deal — no hidden randomness.
03
Reveal & verify
After the game is completed, the original seed is revealed. Anyone can hash it with SHA-256 and check it matches the seedHash published up front, then replay the shuffle to reproduce the exact cards that were dealt.

The commitment scheme

seedHash = SHA-256(seed)
Published before the game starts. The hash reveals nothing about the seed, yet binds the server to it — a one-way commitment.
deck = FisherYates(52-card deck, HMAC-SHA512(seed, i))
The shuffle is fully deterministic in the seed. Cards 1–2 go to the left hand, 3–4 to the right hand, and 5–9 become the five community cards.
verify: SHA-256(revealed seed) == seedHash
If the hashes match, the seed is the one committed to before the deal, and replaying the shuffle reproduces the exact same cards. If they differ, the deal was tampered with.