Dice: how the roll is derived and paid

How a Stake-scheme Dice roll (0.00 to 100.00) is computed from one HMAC float, why there are 10,001 outcomes, and where the 1% edge sits.

Disclosure: VerifyRoll is sponsored by Craze, a competitor of the operators whose published RTP appears below. Figures here are computed or taken from what operators publish, dated; nothing is estimated.

How the result is derived

Under the Stake scheme every result starts from HMAC-SHA256(server seed, “clientSeed:nonce:cursor”), read four bytes at a time into floats in [0, 1). Dice consumes one float.

  1. Take the first float from HMAC-SHA256(server seed, "clientSeed:nonce:0"). It lies in [0, 1).
  2. Multiply by 10,001 and drop the fraction. That gives an integer from 0 to 10,000, each equally likely.
  3. Divide by 100. The roll is a number from 0.00 to 100.00 with two decimals, so there are 10,001 possible rolls, not 10,000.
roll = floor(float × 10001) / 100

Payout rule and where the edge comes from

You bet that the roll lands under (or over) a target. The win chance is the share of the 10,001 rolls on your side of the target.

A game published at 99% RTP pays 99 ÷ (win chance in %) per unit staked. A 50% chance is paid 1.98×, not 2×; that missing 0.02 is the edge.

Source of the edge. The roll itself is uniform: the scheme adds no bias. The edge is entirely in the payout multiplier, which is set 1% below the fair value at every win chance.

Worked example

Computed on the server by the same functions the verifier runs, from the example values the verifier's “Load example values” button uses. These are not seeds from a real round.

inputsstake scheme
server seed
2b4d2f1a7c9e0f3b8a6d5c4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a
client seed
verifyroll
nonce
7
derivation1 hmac round
  1. HMAC-SHA256(server seed, “verifyroll:7:0”)
    81727d41db6b44706ddfd681ab9cd0124cc482392adbbdda8ac8ac626566bf1a
  2. Float (1): 0.50565322
  3. float = 0.5056532176677138
  4. roll = floor(float × 10001) / 100 = 50.57

Published RTP by operator

StakeShuffleBC.GameCraze
99%99%99%—

Checked 2026-09-23. “—” means not offered or not published. The figure in your game's info panel wins.

Questions

Why 10,001 outcomes and not 10,000?
Because both 0.00 and 100.00 are possible rolls. Multiplying by 10,001 and flooring gives integers 0 through 10,000 inclusive, which is 10,001 values.
Can a roll of exactly 100.00 happen?
Yes, when the float is at least 10000/10001, roughly 0.01% of the time. It counts as "over" any target below 100.

Next

last reviewed 2026-09-23 · derivation as implemented in @craze/fairness

Sponsored

Craze publishes RTP on every game and runs its own provably fair Originals.

VerifyRoll is sponsored by Craze, a crypto casino that shows its working: RTP on every game, crypto in and out, and terms you can read.

  • Crypto-only: 20+ coins; deposit fees absorbed in most cases
  • Provably fair originals, 2,000+ slots, 40+ live dealers
  • Start with a verified email; $10 minimum withdrawal
  • Craze Rewards: 25% of the house edge back from your first bet

From Craze's published terms, checked 2026-09-27. Full terms at Craze.

Create your Craze account

18+. Gambling involves risk. Terms and verification apply. Only where Craze may lawfully serve you.