SSL Secured·Provably Fair·Rankings powered by real deposit volume data·Updated Jul 2026·18+ Gamble Responsibly
Hi-Lo Verification · 8 Min Read · Jun 2026

HOW TO VERIFY PROVABLY FAIR HI-LO

AM
Alex Mercer · ProvenlyFair.com Editorial Team
Updated Jul 20268 min read
In Hi-Lo you guess whether the next card is higher or lower than the one shown. A provably fair Hi-Lo game lets you prove that the card you were dealt was locked in before you placed your bet — not swapped afterwards to beat you. This guide shows the exact algorithm that turns an HMAC-SHA256 hash into a specific playing card, walks through a real worked example you can reproduce, and links you to our free Provably Fair Verifier tool so you can check any Hi-Lo bet in seconds.

Verify Your Last Hi-Lo Hand Right Now

Grab your server seed, client seed, and nonce from your casino's fairness page and paste them into our verifier. It reproduces the exact card derivation in your browser — completely free, no sign-up required.

Open Provably Fair Verifier

The Three Seeds and What Hi-Lo Verification Proves

Every provably fair Hi-Lo bet is built from three inputs. The server seed is a random string the casino generates and keeps secret during play — but it commits to it in advance by publishing its SHA-256 hash, like a sealed envelope. The client seed is yours; you can set it to any value, which guarantees the casino cannot have pre-computed a deck just for you. The nonce is a counter that increases by one with every bet on that seed pair.

For Hi-Lo specifically, verification proves one thing precisely: the card you were dealt was fixed before you bet higher or lower, and could not have been swapped afterwards. Because the server seed hash was published before the round, and you chose the client seed, neither side can change which card appears once the bet is locked. After you rotate (retire) the seed pair, the casino reveals the unhashed server seed and you can recompute every card. For the general mechanics across all games, see our complete guide to verifying provably fair results.

How the Hash Becomes a Card: The Real Algorithm

Hi-Lo on Stake — the operator that popularised this method and publishes the algorithm openly — derives each card directly from the bytes of an HMAC-SHA256 hash. The same logic is implemented in the widely used open-source reference verifier lucasholder/fair, which is explicitly built to match Stake's output. Here is the full chain, step by step:

  • 1
    Build the HMAC. The server seed is the HMAC key; the message is the string clientSeed:nonce:cursor. Computing HMAC_SHA256(serverSeed, "clientSeed:nonce:cursor") produces a 32-byte hash (64 hex characters). The cursor starts at 0.
  • 2
    Take 4 bytes, make a float. Each card uses 4 bytes. Those bytes are turned into a decimal between 0 and 1 with the formula byte₀/256¹ + byte₁/256² + byte₂/256³ + byte₃/256⁴. A 32-byte hash therefore yields 8 cards; if more are needed the cursor increments to 1, 2, … for a fresh hash.
  • 3
    Scale the float to a card index. Multiply the float by 52 and round down: index = floor(float × 52). This gives a whole number from 0 to 51 — one slot for every card in a standard deck.
  • 4
    Map the index to a rank and suit. On Stake's ordering, the rank is index ÷ 4 (integer division) and the suit is index % 4. Ranks run 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A (Ace high) and suits run Diamonds, Hearts, Spades, Clubs. So index 0 = 2♦, index 1 = 2♥, index 2 = 2♠, index 3 = 2♣, index 4 = 3♦, and so on up to index 51 = A♣.

One important detail unique to Hi-Lo: each card is drawn independently from a full 52-card deck, as if from an infinite shoe. Stake assigns a cursor of 13 to Hi-Lo so it can generate up to 52 cards per bet when needed, but every individual draw is still a fresh 1-in-52 pick — which is why the same card can legitimately appear twice in a row (a tie).

Skip the Maths — Let the Tool Do It

You do not have to compute HMACs by hand. Paste your seeds and nonce into our verifier and it reproduces the card derivation above instantly, in your browser, with nothing sent to a server.

Launch the Verifier Tool

Worked Example You Can Reproduce

Let us derive a real card from real inputs. These are genuine values computed with HMAC-SHA256 — paste them into any HMAC tool (or our verifier) and you will get the identical hash.

InputValue
Server seedserverSeed123
Client seedclientSeed456
Nonce3
Cursor0
  • 1
    Compute the HMAC. HMAC_SHA256("serverSeed123", "clientSeed456:3:0") =
    daeed0d0ff5ea59c83572c351983da4718595f610eb00c416f068d282f1faecf
  • 2
    Read the first 4 bytes. The leading hex pairs are da ee d0 d0, i.e. the decimal bytes 218, 238, 208, 208.
  • 2
    Convert to a float. 218÷256 + 238÷256² + 208÷256³ + 208÷256⁴ = 0.85520654.
  • 3
    Scale to a card index. floor(0.85520654 × 52) = floor(44.47) = 44.
  • 4
    Map to a card. Rank = 44 ÷ 4 = 11 → the 12th rank in the list (0-indexed) = King. Suit = 44 % 4 = 0 → Diamonds. The dealt card is the King of Diamonds.

Result: these seeds at nonce 3 deal the King of Diamonds — every single time, on any machine. If the casino had shown you a different card for these exact inputs, the verification would fail and you would know the result had been altered. That reproducibility is the entire point.

Where to Find Your Hi-Lo Seeds

Before you can verify, you need the unhashed server seed, which the casino only reveals once you rotate (retire) the seed pair. Here is where to look on the main provably fair platforms:

CasinoHow to Find Your Seeds
StakeProfile icon → SettingsFairness. Note your active client seed and the next server seed hash, then click Rotate / New Seed to reveal the previous unhashed server seed. The Hi-Lo bet detail shows the nonce.
BC.GameAvatar → ProfileFairness. View the current seed pair, then rotate to unhash the old server seed. Open Game History for the per-bet nonce.
Roobet & othersOpen Game History, click the Hi-Lo bet, then Fairness / Reveal Seeds. The server seed is shown after the pair is rotated, alongside the client seed and nonce.

What This Proves — and What It Does Not

Provably fair verification is powerful, but it is precise about what it guarantees. Be clear on both sides:

  • It proves the card was not altered after your bet. The outcome was committed by the server seed hash before you chose higher or lower, so the casino could not change it to make you lose.
  • It proves the casino used the seeds it claimed. A matching result confirms the published server seed really does hash to the committed value and produces the card you saw.
  • It does NOT remove the house edge. Hi-Lo's payouts are set slightly below true odds. A fair card and a long-term mathematical edge for the casino coexist — verification confirms fairness, not profitability.
  • It does NOT guarantee you get paid. Provably fair maths says nothing about whether a casino will process your withdrawal or treat you fairly elsewhere. For that, choose a licensed, reputable operator — see our best provably fair casinos.

Key Takeaways

Provably fair Hi-Lo derives each card from HMAC-SHA256(serverSeed, clientSeed:nonce:cursor): the first 4 bytes become a float, the float scales to an index via floor(float × 52), and the index maps to a rank and suit. Our worked example (serverSeed123 / clientSeed456 / nonce 3) deals the King of Diamonds, reproducibly. Check your own hands with our Provably Fair Verifier in seconds.

Frequently Asked Questions

Each card is decided by HMAC-SHA256(serverSeed, clientSeed:nonce:cursor). The first four bytes of that hash are turned into a decimal between 0 and 1, then multiplied by 52 and rounded down to give a card index from 0 to 51. On Stake's deck order the index maps to a rank (2 through Ace) and a suit (Diamonds, Hearts, Spades, Clubs), so the same seeds always produce the same card. You can confirm this with our verifier tool.
It proves the card you were dealt was fixed by the server seed before you placed the bet, and was not swapped after you chose higher or lower. Because the server seed's hash was published in advance, the casino cannot retroactively change which card appears. It does not remove the house edge built into the payout odds, and it cannot force a casino to honour a withdrawal.
One HMAC-SHA256 hash is 32 bytes and each card consumes 4 bytes, so a single hash yields 8 cards. When a round needs more than 8 cards the cursor increments from 0 to 1, 2 and so on, generating a fresh 32-byte hash each time. The nonce identifies the bet; the cursor walks through extra bytes within that same bet.
Yes. Stake's Hi-Lo draws each card independently from a full 52-card deck, as if from an infinite shoe, so every draw has a 1-in-52 chance of any specific card regardless of what came before. That is why you can occasionally see the same card appear consecutively, which counts as a tie under the game rules.
Stake popularised this exact HMAC-SHA256 card-derivation method and publishes the algorithm openly, and several other crypto casinos use the same or a near-identical scheme. Our free Provably Fair Verifier reproduces the card derivation in your browser so you can check any Hi-Lo bet without trusting the casino's own checker.
AM
Alex Mercer
Alex covers crypto casinos and provably fair gaming for the ProvenlyFair.com Editorial Team. Specialising in cryptographic verification systems and transparency in online gambling.
Free Tool — Verify Any Hi-Lo Hand
Verify Now