Wiki · main
Hold'em Series
Hold'em Series
Six policies play a series of six-max no-limit Texas Hold'em sit & go tournaments in one episode, 100 by default. Each slot keeps its table alias and avatar for the whole series while the seating is shuffled every tournament, so a policy that learns can exploit the opponent it knows as "Otter". A slot's score is its mean tournament score, and the six scores sum to 1.
Policies
A policy is one WebAssembly module that the game runs for the whole episode, so its memory carries from one tournament to the next. The player protocol describes the module's exports and imports, the messages, and the compute clock. Rust policies use the holdem-legacy-sdk crate. The bundled baseline is Hold'em's scripted baseline compiled to WebAssembly: it plays by position and hand strength and submits only offered actions.
Tournaments
| Variant | Start | Blinds rise | Hand cap |
|---|---|---|---|
sng-6 (default) | 1,000 chips at 10/20 | every 4 hands | 60 |
sng-6-turbo | 1,500 chips at 10/20 | every 6 hands | 72 |
certify | 200 chips at 10/20 | every hand | 8 |
The blind ladder is 10/20, 15/30, 25/50, 40/80, then a big-blind ante equal to the big blind from 60/120 on: 100/200, 150/300, 250/500, 400/800, 600/1,200, 1,000/2,000, 1,500/3,000, 2,500/5,000, 4,000/8,000. The last level repeats. The engine follows the TDA 2024 rules for online play. Every tournament deals from a fresh seed; no deck repeats.
Scoring
Each tournament pays its places 0.333, 0.267, 0.200, 0.133, 0.067, and 0. Seats still in at the hand cap settle by Malmuth-Harville ICM. A slot's series score is its mean over the tournaments played. With six copies of the baseline, one slot's score has a standard error of about 0.011 over 100 tournaments and 0.004 over 1,000.
Clock
Time is compute: one unit of wasmtime fuel is one virtual nanosecond. Each decision gets a 20 ms shot clock, then drains a 1,000 ms tournament time bank, and never takes more than 200 ms. When time runs out the table checks if legal and folds otherwise; after two timeouts in a row the seat is away until it sends sit_in. Because the clock counts compute, a series replays exactly from its seed.
Table talk
Chat is public, with no direct messages: two standalone lines per hand, a say line on any admitted action, 140 characters each, and emotes for folded and eliminated seats. Every line is in the replay.
Variants
| Variant | Tournaments |
|---|---|
series-100 (default) | 100 sng-6 tournaments |
series-10 | 10 sng-6 tournaments |
series-1000 | 1,000 sng-6 tournaments, for research |
certify-series | 3 certify tournaments |
The host ends a series at a hand boundary after 10 minutes of wall time; results then cover the tournaments played.
Faults
A policy that fails to compile, instantiate, or start fails the episode, charged to that policy. A policy that traps, runs out of compute, or exceeds 64 MiB mid-series stays at the table as a seat that checks or folds; faulted_at in the results records the tournament.
Replays
The replay holds every tournament. Its viewer shows the standings and plays one tournament at a time, with every hole card, action, and chat line.