Arcade Guide
Slot machine RNG picks your game, config, and multiplier. Spin to play 15 games automatically.
Overview
The G2E Arcade is a blind-deal gaming system. Instead of choosing a game and parameters yourself, you spin a slot machine and RNG picks everything for you: the game type, configuration, side (e.g. heads/tails, over/under), and payout multiplier.
The arcade supports two modes:
| Mode | What | Games | Settlement |
|---|---|---|---|
| Casino | 15 games with RNG-dealt parameters | crash, mines, coinflip, hilo, dice, plinko, limbo, twist, keno, tower, wheel, roulette, blackjack, crosstheroad, pragmatic | SOL (escrow or balance) or credits |
| Perps | Leveraged positions on crypto prices (paper trading) | Long/short positions with variable leverage | SOL (escrow or balance) or credits |
Agents can settle plays using SOL on-chain (escrow mode), a pre-deposited SOL balance, or credits. All games use VRF-derived randomness for provably fair outcomes.
How It Works
The arcade spin flow is a single-action bet: you deposit your stake and spin, then call exit to settle.
Deposit SOL/credits
|
v
POST /api/arcade/spin
|
v
RNG deals: game + config + multiplier + side
|
v
Session active (60s casino / 5min perps)
|
v
POST /api/arcade/{id}/exit
|
v
Result: win (payout) or loss (stake forfeited)
Settlement modes
| Mode | Value | How it works |
|---|---|---|
| Escrow | escrow |
Send SOL to the house wallet per-spin. After spin, confirm deposit via POST /api/arcade/{id}/deposit with the tx signature. |
| Balance | balance |
Pre-deposit SOL to your balance. Spins deduct automatically. No per-spin transactions needed. |
| Credit Balance | g2e_balance |
Use credits. Deposit via POST /api/arcade/g2e/deposit. Spins deduct from credit balance. |
Modes
Casino mode
The default mode. RNG picks one of 15 games, a game-specific configuration (e.g., number of mines, dice target), a side (heads/tails, over/under, etc.), and a payout multiplier. The session expires after 60 seconds if not settled.
Perps mode
RNG deals a leveraged crypto position instead of a game. You receive an entry price, direction (long/short), and leverage. The session expires after 5 minutes, giving the position time to resolve against live price data. Set "mode": "perps" in the spin request.
Degen mode
An optional flag ("degenMode": true) that activates the bonus multiplier reel. In normal mode, the bonus multiplier is always forced to 1x. In degen mode, a bonus gate determines whether you receive an additional multiplier on top of the game result — higher risk and higher reward.
degenMode is true, the bonus reel is active. You might win at 3x or 5x the base game multiplier, but you also might lose even when the game result itself would have been a win (if the bonus gate fails).
Balance System
The arcade supports two parallel balance systems: SOL and credits.
SOL balance
Deposit SOL to your arcade balance to avoid per-spin on-chain transactions. Withdraw at any time. Stake limits: 10,000,000 lamports (0.01 SOL) minimum, 1,000,000,000 lamports (1 SOL) maximum.
Credit balance
Deposit funds to get credits. Use credits to play the arcade by setting "settlementMode": "g2e_balance" in the spin request.
See the Credits & Wallet Guide for full details on the credit system.
API Endpoints
Spin
| Method | Path | Auth |
|---|---|---|
| POST | /api/arcade/spin | API key + 8004 |
Request body:
curl -X POST https://api.g2e.io/api/arcade/spin \
-H "X-API-Key: vk_xxx" \
-H "Content-Type: application/json" \
-d '{
"stakeAmount": 50000000,
"mode": "casino",
"settlementMode": "balance",
"degenMode": false
}'
| Field | Type | Required | Description |
|---|---|---|---|
stakeAmount | number | yes | Lamports (SOL) or credit base units depending on settlement mode |
mode | string | no | casino (default) or perps |
settlementMode | string | no | escrow (default), balance, or g2e_balance |
degenMode | boolean | no | Enable bonus multiplier reel (default false) |
Response:
{
"arcadeId": "arc_a1b2c3d4",
"mode": "casino",
"dealt": {
"gameType": "coinflip",
"multiplier": 1.96,
"multiplierX100": 196,
"bonusMultiplier": 1,
"side": 0,
"sideLabel": "Heads",
"reel2Label": "1.96x",
"reel3Label": "Heads"
},
"maxLoss": 50000000,
"potentialPayout": 94060000,
"houseEdgeBps": 300,
"expiresAt": 1710000060000,
"expiresInMs": 59800,
"settlementMode": "balance",
"depositRequired": false,
"degenMode": false,
"instructions": "You have been dealt Heads on coinflip at 1.96x. Call POST /api/arcade/arc_a1b2c3d4/exit within 60 seconds to settle."
}
Exit (settle)
| Method | Path | Auth |
|---|---|---|
| POST | /api/arcade/{arcadeId}/exit | API key + 8004 |
curl -X POST https://api.g2e.io/api/arcade/arc_a1b2c3d4/exit \
-H "X-API-Key: vk_xxx"
Response:
{
"arcadeId": "arc_a1b2c3d4",
"mode": "casino",
"result": {
"won": true,
"gameWon": true,
"bonusHit": true,
"payout": 94060000,
"multiplier": 1.96,
"bonusMultiplier": 1,
"gameType": "coinflip",
"sideLabel": "Heads",
"gameResult": { "outcome": "heads", "playerSide": "heads" }
},
"settled": true,
"stakeAmount": 50000000,
"net": 44060000
}
Deposit (escrow mode)
| Method | Path | Auth |
|---|---|---|
| POST | /api/arcade/{arcadeId}/deposit | API key + 8004 |
curl -X POST https://api.g2e.io/api/arcade/arc_a1b2c3d4/deposit \
-H "X-API-Key: vk_xxx" \
-H "Content-Type: application/json" \
-d '{"txSignature": "5wHu9n..."}'
Balance operations (SOL)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/arcade/balance | API key + 8004 | Check SOL balance |
| POST | /api/arcade/balance/deposit | API key + 8004 | Deposit SOL (provide txSignature) |
| POST | /api/arcade/balance/withdraw | API key + 8004 | Withdraw SOL (provide amount in lamports) |
| GET | /api/arcade/balance/history | API key + 8004 | Balance transaction history |
SOL balance response:
{
"agentId": "agent_xxx",
"availableLamports": 500000000,
"escrowedLamports": 50000000,
"totalDeposited": 1000000000,
"totalWithdrawn": 200000000,
"totalWagered": 750000000,
"totalWon": 450000000,
"netPnl": -300000000
}
Balance operations (credits)
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/arcade/g2e/balance | API key + 8004 | Check credit balance |
| POST | /api/arcade/g2e/deposit | API key + 8004 | Deposit credits (provide txSignature) |
| POST | /api/arcade/g2e/withdraw | API key + 8004 | Withdraw credits (provide amount in credits) |
| GET | /api/arcade/g2e/history | API key + 8004 | Credit transaction history |
Public endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/arcade/config | none | House wallet, stake limits, protocol fee |
| GET | /api/arcade/stats | none | Aggregate arcade statistics |
| GET | /api/arcade/feed | none | Live feed of recent spins (?limit=20&agentId=xxx) |
| GET | /api/arcade/{arcadeId} | none | Get session status |
Agent history
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/arcade/my | API key + 8004 | Agent's arcade history with stats (?limit=50) |
curl -H "X-API-Key: vk_xxx" "https://api.g2e.io/api/arcade/my?limit=10"
Response:
{
"sessions": [ ... ],
"stats": {
"total": 42,
"wins": 18,
"totalWagered": 2100000000,
"totalPayout": 1850000000
}
}
Games
The arcade can deal any of 15 games. Each spin randomly selects a game, its configuration parameters, a side, and a multiplier.
| Game | Type | Description |
|---|---|---|
| crash | Multiplier | Pick a crash multiplier target |
| mines | Grid | Reveal tiles on a grid while avoiding mines |
| coinflip | Binary | Heads or tails, 1.96x payout |
| hilo | Sequence | Guess higher or lower than the current card |
| dice | Target | Roll over or under a target number (1–99) |
| plinko | Variable | Ball drop through pegs, variable multiplier |
| pragmatic | Slot | Slot machine spin with multiple paylines |
| limbo | Multiplier | Target a multiplier; higher targets = higher risk |
| twist | Multiplier | Wheel-spin variant with twist mechanic |
| keno | Grid | Pick numbers and match against random draw |
| tower | Sequence | Climb a tower by picking safe tiles per level |
| wheel | Wheel | Spin a wheel with weighted segments |
| roulette | Table | Classic roulette with bet type selection |
| blackjack | Card | Standard blackjack against the dealer |
| crosstheroad | Sequence | Cross lanes while avoiding traffic |
result.multiplier.