STORAGE AUCTION

The stepper with a locker on top. Bid against rivals; every won bid raises what the locker is worth (c_k = round(M^(k/10), 2)), survival is RTP ÷ c_k so the first bid carries the whole edge and every later bid is fair. Take the locker at any rung and open it: the contents are a Single Shot draw with mean exactly 1 around that value, drawn from the recycled residual of the same uniform. Every take rule returns exactly the RTP.

same math as the stepperone uniform, recycledsmall 5× · medium 10× · large 25× · xl 100×
open full screen ↗

The math

Loading ALGORITHM.md…

Live API (browser module)

The engine is published as an ES module that implements the RGS provider contract and rolls locally with crypto.getRandomValues: open, valid-bets, bet, next-action, collect, with the observed balance semantics (bet debits the stake, collect credits the win, integer minor units). No server, every round live, and any round replays from its seed. Bet types: SMALL.

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

const g = createGame({ preset: 'SMALL' });                   // presets: SMALL, MEDIUM, LARGE, XL
                                                       // bet types: SMALL
const s = g.open();                                    // session, balance 100000, chipLevels [100,200,500,1000,2500,5000,10000]
let r = g.bet({ sessionId: s.sessionId, betAmount: 1000, betType: 'SMALL' });   // fresh crypto seed → nextAction ['CONTINUE']
r = g.nextAction({ roundId: r.roundId, actionCode: 'CONTINUE' });          // step: ['CONTINUE','CASH_OUT'] or the round ends
r = g.nextAction({ roundId: r.roundId, actionCode: 'CASH_OUT' });          // → totalWinAmount, nextAction ['COLLECT']
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: 'SMALL', seed: 'fixture-007' });

Presets and static fixtures

Presets: SMALL, MEDIUM, LARGE, XL (default SMALL). Each preset is a frozen configuration and its own folder: the config, derived tables and settlement rule in field.json, plus one hundred pre-drawn rounds from seeds fixture-000 … fixture-099 settled for every bet type. The same seed drives every preset, so round 007 uses the same u everywhere, and the live module reproduces any of them when given the seed.

# presets, their parameters, bet types and realised RTP over the 100 rounds
curl -s https://danvid1009.github.io/gnarone-game-math/auction/api/index.json

# one preset: parameters, tables (bands / odds / ladder / decks), RN intervals, how to settle
curl -s https://danvid1009.github.io/gnarone-game-math/auction/api/SMALL/field.json

# one round (000–099): seed, full outcome, settlement for every bet type
curl -s https://danvid1009.github.io/gnarone-game-math/auction/api/SMALL/rounds/007.json

# all 100 rounds of a preset (stake and win per bet type)
curl -s https://danvid1009.github.io/gnarone-game-math/auction/api/SMALL/rounds.json

# round 007 played through the real calls: request bodies and every response
curl -s https://danvid1009.github.io/gnarone-game-math/auction/api/SMALL/sample-request.json
curl -s https://danvid1009.github.io/gnarone-game-math/auction/api/SMALL/sample-response.json

Settlement rule is spelled out in each preset's field.json under how_to_settle.

Figures

Locker value per rung and survival for the four sizes: identical to the stepper ladder.
Locker value per rung and survival for the four sizes: identical to the stepper ladder.
The locker multiplier over the recycled residual (mean 1), and the outcome distribution of 'take after 5' against simulation.
The locker multiplier over the recycled residual (mean 1), and the outcome distribution of 'take after 5' against simulation.
Monte Carlo under six hammer rules: every one returns the RTP, locker included.
Monte Carlo under six hammer rules: every one returns the RTP, locker included.

Build it yourself

git clone https://github.com/Danvid1009/gnarone-game-math.git
cd gnarone-game-math/auction-engine
npm test
node bin/build-auction.js --rtp 0.95 --max 25 --steps 10 --js