Shuffle Plinko verifier
This Shuffle Plinko verifier recomputes a drop from the revealed server seed, your client seed and the bet's nonce, in your browser, using the construction Shuffle publishes: HMAC-SHA256(server seed, "clientSeed:nonce:cursor") read as floats, one float per row (8, 12 or 16) for Plinko. Shuffle publishes 99% RTP for Plinko (checked 2026-09-23). With the example inputs below the drop comes out as bucket 5 of 16; press “Load example values” and Verify to reproduce it.
Disclosure: VerifyRoll is sponsored by Craze, a competitor of Shuffle. Figures here are computed or taken from what operators publish, dated; nothing is estimated.
Loading verifier…
How a Shuffle Plinko drop is derived
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.
- 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.
- For each float, compute floor(float × 2): 0 means the ball steps left at that row, 1 means right.
- 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
Full derivation, payout rule and every operator's figure on the Plinko maths page.
Shuffle's published RTP for Plinko
99%, a house edge of 1%, as published by Shuffle and checked 2026-09-23. 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. The verifier proves the drop; it cannot see the RTP. Read the figure in the game's own info panel and compare it with this one.
Worked example
Computed on the server by the same function the verifier runs. The seed pair is the site's example, at nonce 8 on this page; it is not from a real Shuffle round.
- server seed
- 2b4d2f1a7c9e0f3b8a6d5c4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b8c7d6e5f4a
- client seed
- verifyroll
- nonce
- 8
- rows / risk
- 16 / medium
- HMAC-SHA256(server seed, “verifyroll:8:0”)149a1caa4fb1aacf79592126746d2ef933a1402922888136a0b8cb9e70ee8b36
- HMAC-SHA256(server seed, “verifyroll:8:1”)bddfa793a08d235d07b1d87478a80587b361aa86d8d65e80458d79a845220b7f
- Floats (16): 0.08047656 0.31130474 0.47401626 0.45479101 0.20167924 0.13489540 0.62781975 0.44113989 0.74169395 0.62715360 0.03005746 0.47131381 0.70070902 0.84702101 0.27168999 0.27005073
- directions = L L L L L L R L R R L L R R L L
- bucket = number of rights = 5 (0 = far left, 16 = far right)
result
bucket 5 of 16
Published multiplier at 16 rows, medium risk, for this bucket: 1.5×
Open the verifier pre-filled with these valuesQuestions
- What do I paste to verify a Shuffle Plinko drop?
- The revealed server seed, your client seed and the bet's nonce, plus the server seed hash that was shown before play if you want the commitment checked. Plinko consumes one float per row (8, 12 or 16) from the HMAC output.
- What RTP does Shuffle publish for Plinko?
- 99%, a house edge of 1%, as published by Shuffle and checked 2026-09-23. 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.
- 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
- Verify any Shuffle bet: where the seeds are, all seven games.
- Stake Plinko verifier: same construction, separate operator.
- Shuffle Mines verifier
- Shuffle Crash verifier
- Bucket probabilities and exact RTP
- Shuffle in the casino directory
last reviewed 2026-09-27 · derivation as implemented in @craze/fairness