Skip to content
Variance Labs

Verification · Stake Analyzer · 5 min read

How Stake Engine slot spins are verified

Stake Engine slots pick each spin from a published, weighted outcome table. How the table works, how a seed pair selects a row, and how to reproduce a spin.

Stake Engine is the platform third-party studios use to publish slots on Stake. A Stake Engine slot does not compute a spin reel by reel. It picks one row from a table of pre-generated outcomes, and that table is published. This makes a slot spin as checkable as a Dice roll, and it makes the game’s full payout distribution exact rather than estimated.

Outcome tables

Each game mode (base game, bonus buy and so on) has its own table. Every row is one complete spin: the symbols, any features or free spins it triggers, and the total payout. Every row also has a weight. A row with weight 200 is picked twice as often as a row with weight 100.

Because the weights and payouts are public, the return to player of a mode is a sum over the table:

RTP = Σ (weight × payout) / Σ weight

The same table gives the chance of every payout band, from dead spins to the max win. The Stake Engine Verifier builds an odds page for each game from it, with real replays of outcomes in each band.

How a seed pair picks a row

Every Stake Engine slot has its own seed pair, separate from the pair used for Stake Originals and from every other slot. Rotating your Originals seeds does not reveal a slot’s server seed; you rotate it in that game’s fairness panel.

For each spin, the server seed keys an HMAC-SHA256 of the client seed and nonce:

hmac   = HMAC_SHA256(key = serverSeed, message = clientSeed + ":" + nonce)
n      = first 16 bytes of hmac, read as an unsigned 128-bit integer
target = n mod (sum of weights in the mode's table)

Laid end to end, the rows split the range from 0 to the total weight into slices as wide as their weights. The spin is the row whose slice contains the target. A 128-bit number is far larger than any table’s total weight, so the modulo adds no measurable bias.

Reproducing a spin

  1. Open the slot on Stake, open its fairness panel and change the seed pair. Stake reveals the old server seed.
  2. Open the Stake Engine Verifier (opens in new tab), pick the game and mode, and paste the seeds and nonce.
  3. It downloads the published table, computes the row for each nonce in your browser, and shows the spin and payout.

A run can also continue past your real bets to show what the rest of the seed pair would have paid: up to 1 million spins as a guest, 50 million with a free account and 250 million with Verifier+. Players have verified more than 16B spins this way. The Stake Analyzer post on verifying Stake Engine slots (opens in new tab) walks through an example spin, and 250 million spins in a browser (opens in new tab) covers how the hashing is made fast enough.

What the table tells you

The table fixes the long-run return and the odds of each outcome. It says nothing about which row comes next: that depends only on a server seed you cannot see until you rotate it. For how a published RTP plays out over a session of a few hundred spins, see house edge and RTP.