Mines
Reveal safe tiles on a grid while avoiding hidden mines. Each safe reveal lifts your multiplier; cash out any time, or bust on a mine. Multi-action.
Slug: mines · Type: multi-action · TS types: @jackpot-studio/jps-proto/mines
A round is: start (debits wager, places mines) → one or more reveal → cashout (or bust). An instant variant plays a pre-chosen set of tiles in a single call.
Start
Request — Query.start
| Field | Type | Notes |
|---|---|---|
amount |
string | Wager, decimal string. |
mineCount |
int | Number of mines (1 – gridSize−1). |
gridSize |
int | 25 (5×5), 36, 49, or 64 (8×8). |
{ "start": { "amount": "1.00", "mineCount": 3, "gridSize": 25 } }
The response carries metadata (with roundId), the opening state, and an empty start response. Keep the roundId for follow-up actions.
Reveal
Request — Query.reveal
| Field | Type | Notes |
|---|---|---|
field |
int | Tile index to reveal (0-based). |
roundId |
string | The open round. |
{ "reveal": { "field": 7, "roundId": "9f1c…" } }
- Safe tile:
reveal.resultis absent/empty;state.roundsgains an entry and the running multiplier updates. The round stays open. - Mine: the round ends.
state.activebecomesfalse, the fullminesarray is now revealed, andresultcarries the (zero) payout.
Cashout
Request — Query.cashout: { "roundId": "9f1c…" }. Settles at the current multiplier, credits the payout, closes the round. cashout.result carries the final { payout, multiplier }.
Instant
Request — Query.instant: { amount, mineCount, gridSize, fields: [int] } — reveals the listed fields in order in one call. instant.result carries the outcome.
State
GameState:
| Field | Type | Notes |
|---|---|---|
active |
bool | Round still open. |
mineCount |
int | |
gridSize |
int | |
mines |
int[] | Mine positions — hidden while active, revealed on bust/cashout. |
rounds |
Round[] |
Each revealed tile: { field, multiplier }. |
cashedOut |
bool |
Verify
VerifyRequest: { mineCount, gridSize }. Response returns the mine layout for those parameters.
// request message
{ "mineCount": 3, "gridSize": 25 }
// response message
{ "mines": [4, 11, 19] }