Shock Originals verifier
Paste a revealed Shock server seed, client seed and nonce. This page recomputes the four Originals Shock publishes on shock.com/fairness/verification — Dice, Limbo, Mines and Blackjack — with those HMAC-SHA256 snippets. It is not on the unified /verify page yet. After the page loads, nothing is sent to a server.
What this page implements
Dice is a different HMAC
Shock’s Dice snippet keys HMAC-SHA256 with serverSeed-clientSeed-nonce and signs an empty message. The roll is the first eight hex characters, parsed as an integer, then abs % 10000 / 100. That is not the Limbo/Mines/Blackjack stream.
Limbo and Mines share a stream
Those two key HMAC-SHA256 with the revealed server seed and sign clientSeed:nonce:round. Floats are four bytes, Σ byte[i] / 256^(i+1). Mines then Fisher–Yates the remaining tiles. Limbo uses a 2²⁴ raw roll and a 99% edge.
Blackjack rejects a tail range
Each card is a big-endian 32-bit sample. Samples at or above floor(2³² / 52) × 52 are thrown away so every card in Shock’s published 52-card list has the same odds. The list starts at ♦2, not Ace of Hearts.
Not the unified calculator
Stake, Shuffle, BC.Game and the other live tabs stay on /verify. This URL is Shock-only so you can check the numbers against shock.com/fairness/verification before any tab is added there. Crash, Plinko, Keno and the rest of the lobby still belong in Shock’s in-game fairness tool.
Does any of my data leave this page?
No. After the page loads, hashing runs through the browser Web Crypto API. Seeds are not posted anywhere — including not to Shock.
Where do I copy the seeds?
On Shock, open Fairness or rotate your seed pair. The client seed and nonce are visible immediately. The server seed is revealed after you rotate; hash that revealed value with SHA-256 and it should match the commitment you were shown first. Shock also has /fairness/seed to unhash a rotated pair.
Why only four games?
Shock’s public verification page only lists Dice, Limbo, Mines and Blackjack. Everything else says to use the fairness tool inside the game. This page follows that published set so the numbers can be compared without guessing mappings.
The Dice formula looks unusual. Is that right?
Yes. Shock’s own snippet uses createHmac('sha256', `${serverSeed}-${clientSeed}-${nonce}`).digest('hex') with no .update() call, which is HMAC over an empty message. If a live Dice bet disagrees, keep the seeds and tell us — that would mean their server no longer matches the snippet they print.