RATED RACERS

demo balance1,000.00
BACK A RACER
Click a lane to back that racer, pick a stake, press Race. One uniform number, recycled, produces the whole finishing order. First, second and third all pay stake plus profit.
LIVE API · HOW TO CALL

The engine ships as a browser module at https://danvid1009.github.io/gnarone-game-math/top-3/api/rgs.js. It speaks the RGS provider contract (open, valid-bets, bet, next-action, collect; money in integer minor units; bet debits, collect credits) and rolls with crypto.getRandomValues in your page, so there is no server and every round is live. Pass seed to replay a round.

import { createGame } from 'https://danvid1009.github.io/gnarone-game-math/top-3/api/rgs.js';

const g = createGame({ preset: 'field-12' });                // presets: field-12, field-8, field-6, field-12-tight
                                                       // bet types: RACER_1, RACER_2, RACER_3, RACER_4, RACER_5, RACER_6, RACER_7, RACER_8, RACER_9, RACER_10, RACER_11, RACER_12
const s = g.open();                                    // session, balance 100000, chipLevels [100,200,500,1000,2500,5000,10000]
const r = g.bet({ sessionId: s.sessionId, betAmount: 1000, betType: 'RACER_2' });   // fresh crypto seed; win in r.totalWinAmount
g.collect({ roundId: r.roundId });                                           // credits the win → { balance }

// Replay any fixture: same seed, same code path, same answer as rounds/007.json
g.bet({ sessionId: s.sessionId, betAmount: 1000, betType: 'RACER_2', seed: 'fixture-007' });
STATIC FIXTURES · 100 PRE-DRAWN ROUNDS

Seeds fixture-000 … fixture-099, served as plain JSON (GET, no auth, deterministic). Stake unit is 1000 minor units; scale linearly. The live module reproduces any of them when given the same seed.

curl -s https://danvid1009.github.io/gnarone-game-math/top-3/api/index.json                 # presets, parameters, bet types, realised RTP
curl -s https://danvid1009.github.io/gnarone-game-math/top-3/api/field-12/field.json            # one preset: frozen config + tables + how to settle
curl -s https://danvid1009.github.io/gnarone-game-math/top-3/api/field-12/rounds/007.json       # one round (000–099), settled for every bet type
curl -s https://danvid1009.github.io/gnarone-game-math/top-3/api/field-12/rounds.json           # all 100 rounds (stake + win per bet type)
curl -s https://danvid1009.github.io/gnarone-game-math/top-3/api/field-12/sample-request.json   # RGS-shaped request
curl -s https://danvid1009.github.io/gnarone-game-math/top-3/api/field-12/sample-response.json  # …and its response

One folder per preset: field-12, field-8, field-6, field-12-tight. Settlement rule is spelled out in each preset's field.json under how_to_settle; the same seed drives every preset, so round 007 has the same u in all of them.

Full write-up: Top 3 page.