Plinko

Drop a ball through a field of pegs; it lands in a multiplier slot. Single-action.

Slug: plinko · Type: single-action · TS types: @jackpot-studio/jps-proto/plinko

Choose the number of rows (8–16) and a risk level. More rows and higher risk widen the payout spread (lower base, bigger edges).

Bet

RequestQuery.bet

Field Type Notes
amount string Wager, decimal string.
rows int Peg rows, 8–16.
risk enum Risk RISK_LOW (1), RISK_MEDIUM (2), RISK_HIGH (3). Send the number or the name.
{ "bet": { "amount": "1.00", "rows": 16, "risk": 2 } }

ResponseResult.bet

Field Type Notes
dropPoint object { x, y } doubles — the ball's resolved landing path, for animation.
result object { payout, multiplier }. The multiplier is the landed slot.
{
  "metadata": { "balance": "100.40", "roundId": "9f1c…" },
  "bet": { "dropPoint": { "x": 0.62, "y": 1.0 }, "result": { "payout": "1.40", "multiplier": "1.4" } }
}

State

GameState: { dropPoint, result, risk, rows }. Here risk and rows are plain integers and result is the landed slot index.

Verify

VerifyRequest needs the configuration so the result space matches the original round.

Field Type
rows int
risk int
// request message
{ "rows": 16, "risk": 2 }
// response message
{ "multiplier": "1.4" }