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
Request — Query.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 } }
Response — Result.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" }