Stake Engine Verifier: How to Verify Any Slot Spin (Free Tool)
Published 2026-04-26 · Tags: guides, verifier, fundamentals, tools, product
Every Stake Engine slot uses cryptographic provably-fair math. Here's the complete walkthrough for verifying any spin yourself, plus how deep-dive scans surface real RTP across millions of nonces.
If you've ever lost a chunk on a Stake Engine slot and wondered if the spin you got was the one Stake actually owed you, this post is for you. The math behind every Stake Engine slot is provably fair — not in the marketing sense, but in the cryptographic one. Every spin is the deterministic output of three values you can copy out of your account, and it's possible to reproduce that output yourself, locally, in under a minute, without any third-party trust.
This is how it actually works, what most players miss, and how to use the Stake Engine Verifier to audit any spin or scan millions of nonces in a single deep-dive RTP check.
Why Stake Engine slots are different from Stake Originals
Stake has two completely separate provably fair systems running side-by-side, and most "Stake provably fair" guides only cover one of them.
Originals (Dice, Limbo, Crash, Mines, Plinko, Keno, Blackjack, Hilo, Flip, Wheel, Drill, Chicken, Pump, Dragon Tower, Snakes) use one algorithm. Stake controls the math, the verifier, and the source code. Our Stake Originals Verifier handles those.
Engine slots are everything else. Stake Engine is Stake's third-party publishing platform — over 1,200 slots from 270+ studios run on it. Math packs are written by the studios but verified through Stake Engine's official Provably Fair API, which is publicly accessible and signs off on every spin's outcome.
The two systems use different algorithms. The Originals verifier won't work on engine slots, and vice versa. If you've been pasting your slot seeds into a generic Stake provably fair checker and getting nothing useful, that's why.
What provably fair actually proves
Every Stake Engine spin comes from three pieces of input:
- A server seed that Stake commits to before any bets are placed. The committed value is a SHA-256 hash, not the seed itself. This is what the casino can't change later.
- A client seed that you control. You can rotate this any time from the Provable Fairness panel.
- A nonce that increments by 1 with every bet you place. Bet #1, bet #2, bet #3... no skipping.
When you rotate seeds, Stake reveals the old server seed. From that moment on, every spin you placed under that seed is auditable: anyone with the three values can plug them into HMAC-SHA256, get back a 256-bit number, take it modulo the game's sumWeight, and look up the resulting rand in the game's published event table. The output is the exact event, payout multiplier, and animation Stake gave you.
What this proves:
- Stake could not have known the outcome of any of those bets in advance, because the server seed was hash-committed before bet #1.
- Stake could not have changed any of those bets after the fact, because if they had, the revealed server seed would no longer hash to the original commitment.
- The math used to derive the outcome is the same math anyone with the published lookup table can reproduce.
What it doesn't prove:
- That the odds are fair. Provably fair only verifies that the casino couldn't tilt a specific spin against you, not that the published RTP is good. If a slot is built with a 90% RTP, it's still 90% — provable just means it's transparently 90%.
- That the seed rotation is honest. If the casino somehow knew your future client seed before you used it, they could pre-compute outcomes. This is why client-seed rotation matters — change it whenever you want, especially after streaks you find suspicious.
What's in the verification math, in plain terms
The cryptography is one HMAC-SHA256 call. The actual line of code Stake gives you on the Verify tab looks like this:
const hmac = createHmac("sha256", serverSeed)
.update(`${clientSeed}:${nonce}`).digest();
const view = new DataView(hmac.buffer);
const u128 = (view.getBigUint64(0) << 64n) | view.getBigUint64(8);
const rand = u128 % sumWeight;
Five values matter:
- serverSeed — the revealed seed from Stake's Provable Fairness panel. 43 characters of base64url. If yours isn't 43 characters exactly, you're either looking at the unrevealed hash commitment (rotate seeds first) or you've copied it wrong.
- clientSeed — yours, 8 characters. Pulled from the same panel.
- nonce — the bet number under that seed pair. Stake shows it next to each bet in your archive.
- sumWeight — the total of all event weights in the game's lookup table. This is the modulus on the final step. Different per game, per mode, per version. A common mistake is using a sumWeight from another mode (base vs bonus, for instance) and getting outputs that look right but verify wrong.
- rand — the output. A big integer between 0 and sumWeight. The lookup table maps each
randrange to a specific event ID, and that event ID maps to a payout multiplier and an animation.
The math is deterministic. Same inputs → same rand, every time, on any computer. There's nothing for the casino to fudge.
How to verify a single spin
Three minutes, four steps:
-
Rotate your seeds on Stake. This reveals your previous server seed. Open the slot in question, click the seeds icon, hit "rotate". Copy the revealed server seed (43 chars), the client seed that was active (8 chars), and note the nonce of the spin you want to verify.
-
Paste them into the Stake Engine Verifier. Pick the slot from the catalog. The verifier auto-pulls the current
sumWeight, mode, and version from Stake Engine's official Fair API — no manual lookup needed. -
Click Verify spin. The verifier computes the HMAC, derives the
rand, and looks it up in the cached event table for that mode. You get back the event ID, payout multiplier, and (for games that support it) a replay link that opens the actual spin animation on Stake Engine's public RGS. -
Compare to your bet history. The event ID and payout the verifier returns should match exactly what Stake showed you. If they do, the spin was honest. If they don't (which has never happened in the wild that we've seen), you have cryptographic proof of a discrepancy.
For the snippet path: Stake gives you a copy-pasteable code snippet on the Verify tab that contains every input. Paste the entire snippet into the verifier's "Snippet" tab and it auto-fills server seed, client seed, nonce, sumWeight, and the expected event ID. Most users find this faster than copying values one at a time.
What deep-dive scans actually do
Single-spin verification answers "was this one bet honest?" Deep-dive scans answer a much more useful question: "is the math the studio published actually what they're paying out?"
A deep-dive scan reproduces the verification step across a range of nonces — 10,000, 1,000,000, even 5,000,000 — and aggregates the results. You get back:
- Win rate — how many of the scanned nonces returned a payout above your stake. For a real slot this is typically 20-40% on base mode, depending on volatility.
- Realized RTP — the actual return-to-player across the scanned range. This should match the slot's published RTP within about ±0.1% over a million nonces. If it doesn't, the math pack is mis-stated.
- Net profit at any bet size — RTP × bet × nonces gives you exactly what you'd expect to win or lose if you placed that range of bets at that stake. Useful for sanity-checking expected losses before grinding a bonus.
- Payout distribution — how many of those nonces hit 0×, 0.5-2×, 2-10×, 10-100×, 100-1000×, 1000×+. Volatile slots have a fat zero bucket and a thin top bucket.
- Top multipliers — the biggest hits in the range. Useful for spotting whether a slot's published max-win is actually achievable in normal play.
The Stake Engine Verifier runs deep-dive scans entirely client-side using Web Workers. We fetch the gzipped lookup table for the chosen mode once, decompress it in your browser, and spawn HMAC-SHA256 workers across your CPU cores. A million-nonce scan finishes in 1-2 seconds on most laptops. No server load, no rate limits, no scan caps for the ~95% of games that have lookup tables cached.
This isn't a marketing claim — it's the only way the math works at scale. Stake Engine's official Fair API is rate-limited and would crawl on a 5M-nonce request. Running everything locally in your browser was the only way to make deep dives genuinely instant.
Common mistakes that make verification fail
If your verification doesn't match what Stake shows, before assuming Stake is wrong, check:
- You're verifying the right mode. Bonus-buy modes (super_bonus, double_super, etc.) have their own lookup tables and
sumWeight. Verifying a bonus buy as if it were a base spin gives a meaningless result. - You're using the right version. Studios push math updates. v1, v2, v3 all live on Stake Engine; the version active when you placed the bet is the one to verify against. Recent bets typically use the latest active version. Older bets may use v1 or v2.
- The server seed is the revealed one, not the hashed commitment. The hashed commitment is also 64 characters of hex. The revealed seed is 43 characters of base64url. They look different at a glance.
- The client seed hasn't been rotated since the bet. If you rotated multiple times, the client seed for an old bet may not be the one currently shown — you have to look at the seed history for that bet's specific window.
- The nonce is right. Nonces increment with every bet under a seed pair. If you placed 200 bets between rotations and you're trying to verify the 87th one, nonce = 87, not 1.
Replays — what they are and aren't
For about 80% of Stake Engine slots, the verifier can also generate a replay link that opens the exact spin animation on Stake Engine's public RGS demo. You see what you actually saw on Stake — the same wild placements, the same multiplier reveals, the same bonus triggers — but in a clean iframe with no balance, no stakes, just the visual.
What the replay proves: that the studio's animation faithfully reflects the underlying math. If a payout multiplier of 24× was supposed to fire on event #7,832, the replay shows the same animation fire on event #7,832.
What it doesn't prove: that the math is honest in the first place. Replay confirms animation matches math. Verification confirms math matches the cryptographic commitment. You need both.
The 20% of slots without replay support don't have a game_uuid published in the Stake Engine catalog yet. The verifier still gives you everything math-related; it just can't show the animation.
Why this is hard to find anywhere else
Stake's own provably fair tools cover their Originals very well — Dice, Limbo, Crash all have first-party verifiers. For engine slots they point you at Fair API docs and assume you can implement HMAC-SHA256 + lookup-table search yourself. For most players that's not realistic.
The third-party tools that exist (StakeStats and a couple others) typically lean on per-game lookup tables fetched on demand, which makes deep-dive scans slow and rate-limited. The Stake Engine Verifier is, as of writing, the only tool that:
- Pulls every game in the active Stake Engine catalog automatically (1,200+ titles).
- Pre-caches every lookup table server-side (~95% of catalog) so first-spin verification is instant.
- Runs deep-dive scans locally in your browser with no server-side bottleneck — scan 1M, 5M, even 10M nonces without rate limits.
- Surfaces the full math metadata for every mode (RTP, hit rate, bust rate, volatility category) before you ever click Verify.
Honest limitations
A few things the verifier doesn't fix and probably never will:
- Some games have base modes with 10M+ events. Apple Rush is the canonical example. Stake's own Fair API can't render the lookup table at this size — both the API and the third-party mirror return 500/502 errors. For those games, deep-dive scans fall back to a per-spin Playwright path on our VPS, capped at 100 nonces. Single-spin verification still works fine.
- Replays require a UUID in the public catalog. About 20% of titles don't have one yet. The math verifies; the visual doesn't.
- No insider math access. We use only the public Provably Fair API + the studios' published lookup tables. If a game's RTP is mis-stated by the studio, our deep dive will show the realized RTP correctly, but we can't tell you what the math should have been.
When to actually use this
A few cases where verification has real value beyond pure curiosity:
- You hit a long losing run on one slot and want to confirm the math is what it says. Run a 1M-nonce deep dive on that game's mode. The realized RTP will match the published RTP within ±0.1% if the math is honest. If it doesn't, you have the receipts.
- You're trying out a new game and want to know its real volatility before risking real money. The deep dive's payout distribution + top multipliers + bust rate tell you exactly what session variance to expect. A 70% bust rate slot will lose all your stake on 7 of every 10 spins — useful to know before you spin 200×.
- You want to compare a bonus-buy mode's actual EV to its cost. Some bonus buys are math-favorable (RTP slightly higher than base), some are tilted to make the cost look like a deal but actually returns less than playing base. Deep-dive scans both modes and surfaces the difference.
- You just want to know your math is sound on big wins. If a slot pays out 5,000× and your friend says "must've been rigged for the streamer" — the verifier proves it was the same math everyone else gets.
Try it
Open the Stake Engine Verifier, pick any slot from the catalog, paste the snippet from your Verify tab on Stake, and click verify. The whole flow takes under a minute the first time and around 15 seconds after you've done it once.
For deep-dive scans, click the Deep dive panel under the verify form, set a nonce range (start with 100k for a feel, then push to 1M+ if your laptop can handle it — most can), and run. You'll get RTP, win rate, top multipliers, and payout distribution in seconds.
The whole thing is free, requires no account, and runs entirely in your browser. The math doesn't care about who you are.