By BluffKing · · Updated
Hand Verification Guide
Press Verify at the table to check shuffle and decryption proofs against this device’s record, or check a downloaded bundle offline. What each result means, and its limits.
After a default-dealing Texas Hold’em hand, open “Fairness details” in the table menu and press Verify. The server returns a shuffle proof that the deck the dealer locked before the deal is exactly one standard 52-card deck, with no card missing, extra or duplicated, and a decryption proof for each card you may see: the board, cards shown at showdown or voluntarily, and your own hole cards, which only you receive. Your browser checks these proofs locally and compares them with the record this device kept during the hand. Fully verified (witnessed on this device) means every proof passes and matches that record; Server record valid, not fully witnessed on this device means the proofs pass but this device’s record is missing or incomplete, for example on another device, after clearing browser storage, after a mid-hand disconnect or for a hand older than the last 500, and does not by itself mean cheating; a proof that fails or disagrees with the record is reported as a failure.
To check on your own machine, sign in, choose the hand in the fairness verifier and download its verification bundle JSON (only players dealt into that hand can get it). Then run the command below from the open-source repository root, or pass - instead of a path to read the bundle from standard input. OK means the shuffle proof and every opened card passed, followed by the commitment and the board and hole cards they prove; REJECTED means a check failed. The server only supplies the proofs: the table check, the verifier page and the command line all check them on your own machine.
cargo run -p mental-poker --bin pf_verify -- ~/Downloads/bluffking-hand-<id8>.json
A pass has limits. Only cards you may see are opened: opponents’ unshown folded cards and undealt cards stay encrypted and cannot be recomputed from the bundle or anything else published, and cards shown by Rabbit hunt are not covered. The player seeds make the order random only if at least one honest player submitted one and no committed seat withheld; a seat that withheld is listed in the result. The command line checks the bundle alone and cannot compare it with your device’s record, so compare its commitment with the one you saw before the deal. Hands from before this update show as an old version that cannot be verified. The separate dealer process still knows the deck it shuffled, and these checks cannot show which program version the live service runs. If you want hole cards hidden from the server during play, see advanced encrypted dealing.