For the complete documentation index, see llms.txt. This page is also available as Markdown.

Plinko

Drop a chip down an 8-row pin pyramid and watch it bounce into one of nine payout slots. Every bounce is derived from a single Chainlink VRF random word - the path isn't animation, it's math.


How it works

Overtime Plinko is a single-shot game: one bet, one VRF word, one result.

  1. You pick a risk level - Low, Medium, or High - and place your bet

  2. The contract reserves the worst-case payout and requests one random word from Chainlink VRF

  3. On fulfillment, the contract takes the low 8 bits of the random word. Each bit is one row of pins: a 0 bounces the chip left, a 1 bounces it right

  4. The final slot is the number of 1 bits (the "popcount") - a value from 0 to 8, giving 9 possible slots

  5. Your payout is bet × paytable[risk][slot]

Because the slot is the count of right-bounces across 8 independent coin-flips, the outcome follows a binomial distribution - the classic Pascal's-triangle bell curve. The center slots are common; the edge slots are rare.

The outcome weights for the 9 slots are [1, 8, 28, 56, 70, 56, 28, 8, 1], summing to 256. The middle slot (slot 4) is 70× more likely than either edge slot (slot 0 or slot 8). This is not a tunable parameter - it's the mathematics of an 8-row board, and it's the same for every player.


Risk levels and payouts

Each risk level has its own paytable. Higher risk concentrates more of the payout at the rare edge slots and pays less in the common center.

Default paytables (multiplier on your bet):

Slot (right-bounces)
Probability
Low
Medium
High

0 (edge)

1/256

5.6×

13×

29×

1

8/256

2.05×

2

28/256

1.05×

1.2×

1.4×

3

56/256

1.0×

0.7×

0.3×

4 (center)

70/256

0.5×

0.4×

0.2×

5

56/256

1.0×

0.7×

0.3×

6

28/256

1.05×

1.2×

1.4×

7

8/256

2.05×

8 (edge)

1/256

5.6×

13×

29×

The table is symmetric - landing at slot 0 pays the same as slot 8, because both require the same improbable run of identical bounces.

Low risk gives you frequent small returns and a soft landing in the middle. High risk turns the center into a near-total loss (0.2×) in exchange for a 29× payout on the edges.


The house edge is enforced in the contract

Plinko's paytables are bound by a hard rule: the weighted RTP across the binomial slot distribution can never exceed 98%, which guarantees a house edge of at least 2%. This is checked in code (_checkRtp) every time a paytable is set - including at deployment and on any owner update. A paytable that would push RTP above 98% reverts with EdgeFloorBreached.

This is the inverse of a hidden-RTP slot machine. You can read the full paytable for any risk level off-chain (getPaytable(risk)), apply the fixed binomial weights, and confirm the exact house edge yourself before you drop a single chip.


Limits

Parameter
Value

Minimum bet

3 USD (configurable per game via core)

Rows / slots

8 rows, 9 slots

House edge floor

2% (enforced - RTP capped at 98%)

Maximum profit per bet

Set in CasinoCoreV2 (effectiveMaxProfitUsd)

Cancellation

Admin/resolver only (no mid-game state to cancel)

Supported collaterals: USDC, WETH, $OVER. Free bets supported via the isFreeBet flag on placeBet.


User guide

1. Open Plinko

Select Plinko from the casino lobby.

2. Pick your risk

Choose Low, Medium, or High. The board's payout slots update to show that risk level's multipliers.

3. Set your stake

Enter your amount and choose your collateral.

4. Drop

Click Drop, sign the transaction. The bet enters pending while the contract waits for the VRF callback.

5. Result

When the random word arrives, the chip's full path is revealed bounce-by-bounce, landing in its final slot. Your payout (if any) is transferred in the same transaction. The slot index, multiplier, and payout are in your bet history and on-chain.


Why this matters

The bounce path in a traditional online Plinko is decided by the operator's server and shown to you as a pre-rendered animation. You see a ball "bounce," but the slot was chosen before the first pin. You have no way to know whether the displayed physics matched the actual probability distribution.

On Overtime, the path is the binary expansion of a verifiable random number. The bell curve isn't a claim - it's the arithmetic of counting bits. The RTP isn't a number on a help page - it's bounded in the contract and computable from the public paytable. There is no server deciding where the chip lands.

Last updated