Plinko: from floats to a bucket to a multiplier

How a Stake-scheme Plinko drop turns one float per row into left/right steps and a bucket, and how the published multiplier table sets the edge.

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). Plinko consumes one float per row (8, 12 or 16).

  1. Generate as many floats as there are rows: 8, 12 or 16. The first HMAC gives 8 floats; 12 or 16 rows need a second HMAC with cursor 1.
  2. For each float, compute floor(float × 2): 0 means the ball steps left at that row, 1 means right.
  3. The bucket is the number of right steps. Bucket 0 is the far left, bucket = rows is the far right.
bucket = Σ floor(float_i × 2)   for i = 1 … rows

Payout rule and where the edge comes from

The bucket indexes the operator's multiplier table for that row count and risk level. VerifyRoll carries the table Stake publishes; other operators publish their own.

Because each step is a fair coin, bucket k is reached in C(rows, k) of 2^rows equally likely paths. The centre buckets are common and pay little; the edges are rare and pay a lot.

Source of the edge. The path is unbiased. The edge is whatever the multiplier table leaves out: sum probability × multiplier across all buckets and you get the RTP. The figures below are computed from the table, not copied from a fairness page.

rowslowmediumhigh
898.9844%98.9063%99.0625%
1298.9795%98.9893%99.1162%
1698.9987%98.9883%98.9764%

RTP of each published table, computed as Σ C(rows, k) × multiplier ÷ 2^rows. Exact fractions in the Plinko calculator.

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
rows / risk
16 / medium
derivation2 hmac rounds
  1. HMAC-SHA256(server seed, “verifyroll:7:0”)
    81727d41db6b44706ddfd681ab9cd0124cc482392adbbdda8ac8ac626566bf1a
  2. HMAC-SHA256(server seed, “verifyroll:7:1”)
    c2c07f6bc3f0feddd98e7bd8b9e1bb233dfcbb5b6f96e9deb6d585c6cf3f461f
  3. Floats (16): 0.50565322 0.85710552 0.42919675 0.67036152 0.29987348 0.16741549 0.54212453 0.39609904 0.76074978 0.76539605 0.84983038 0.72610063 0.24213763 0.43589651 0.71419560 0.80955923
  4. directions = R R L R L L R L R R R R L L R R
  5. bucket = number of rights = 10 (0 = far left, 16 = far right)

result

bucket 10 of 16

Published multiplier at 16 rows, medium risk, for this bucket: 1×

Reproduce this in the verifier

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 does 16 rows need two HMAC rounds?
Each HMAC-SHA256 output is 32 bytes, and each float consumes 4 bytes, so one round yields 8 floats. Rows 9 through 16 come from the round with cursor 1.
Does the table make the RTP exactly 99%?
No. The published tables land within a fraction of a percent of 99% and differ by rows and risk. The Plinko calculator shows the exact figure for every combination.

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.