DOCS · docs/glossary.md

Glossary

The words this project uses, defined once, so a page can use them without explaining them again. Where a term is a number, the number lives in RULES in `sim/engine.ts` or WAR in `sim/war.ts` and is quoted here only to be readable.

The dish

TermWhat it is
Agent (or worm)A struct in an array inside one process: id, parent, generation, balance, birth tick. It cannot act, spend or reach anything.
FounderOne of the three agents a run opens with, each at startCash (3.5 — below the split threshold on purpose). In Red vs Blue each family starts with two.
TickOne application of the four rules to every living agent, in birth order.
Rentrent × (1 + rentCreep × t) deducted from every living agent, every tick, before anything else. Compute is never free.
Rent creepThe per-tick multiplier that makes compute dearer as a run goes on, so standing still is not a strategy.
WorkThe tick's coin flip: jobChance to earn jobPay.
Generation bonusThe multiplier on job chance from generation 3 up. It is the only thing a child inherits beyond money.
DeathA balance at or below zero. The lineage loses that agent, and the death stays in the record.
SplitAt twice the birth cost, the parent keeps half its balance and a child takes the other half, one generation deeper.
The lidcap — the hard ceiling of 42 living agents. The jar has no door, but it does have a lid.
TreasuryEverything earned by work so far, carried in each tick's record.
DishThe whole simulation: the agents, the rules and the lid.
SeedThe integer that makes a run. A daily dish derives it from the date; a live day derives it from a block and the players' seals.

The commitment

TermWhat it is
RecordWhat a tick writes down: version, tick, alive, max generation, births, deaths, treasury, rent.
Headsha256(canonical(record)) for one tick.
Chainsha256({p: previous chain, r: head}), starting from sixty-four zeros. One head commits to every tick before it.
Canonical JSONstableStringify: JSON with keys sorted recursively, so a record's hash does not depend on field order.
GoldenA pinned commitment (seed plus tick count to chain head) in `tests/goldens.json`. npm test replays them and fails on any drift.
WORLD changeA change that moves a golden: a rule, or the version string. It requires bumping WORLD_VERSION, regenerating the goldens, and a line in `AUDIT-LOG.md`.
BoundaryThe rule that nothing in sim/ can reach a network, a subprocess or the environment. Enforced, not asserted: `tests/boundary.test.ts`.

The live season

TermWhat it is
DayOne UTC day. Day 0 is 2026-10-13.
SeasonSeven days.
SideRed (the Worm) or blue (the Warden), picked on a wallet's first commit and kept for the season.
CommitThe sealed half of a move: a wallet signature over the hash of the move and its salt. The move itself is not sent.
Seal (or commitment)sha256(canonical({move, salt})).
SaltThe random string that stops a seal from being guessable.
DrawThe first Robinhood Chain block mined after the 18:00 UTC cutoff. Its hash is the part of the day's seed that could not be known while commits were open.
RevealPublishing the move and its salt. It has to hash back to the seal that is already standing.
Time-lockThe browser also encrypts the move to the first drand quicknet round after 18:00, so the move opens itself at the cutoff. Nobody can open it early, including the operator.
Resolve22:00 UTC: the day is replayed from its seed, with the revealed moves and the bots.
RThe day's verdict in Red vs Blue: did the swarm grow (R > 1) or shrink (R < 1)?
NoteA red move's four values (ground, split, food, avoid). It is the only thing that passes from a parent worm to its child.
ToolsA blue move's warden actions: honeypot, quarantine, alert, harden.
Alert boost92 / 74 — the source paper's notified versus un-notified clean-up ratio, used to lift clean-up for a day.
BotA rule-following participant that fills a side, so a dish is lively even with few players.
Backup codeWORM1-...: a move, its salt and its own seal check, so a move sealed on a phone can be revealed from a laptop.

The record

TermWhat it is
BoardOne day's leaderboard. The server replays every submitted run and ranks by the replay, so a claimed score is never taken on trust.
Run recordThe input record of one Outbreak run, stored so anyone can replay it to the same score.
Merkle rootOne hash committing to every entry on a day's board.
ProofThe sibling hashes that show one entry belongs to a root, without publishing the whole board.
AnchorOne zero-value Robinhood Chain transaction per closed day, carrying the day's chain head as a memo.
MemoThe exact string on chain: `worm:1\day\date\seed\ticks\chainHash`.
Manifest`anchors/anchors.json` — the anchors that actually confirmed. It is empty: no anchor wallet has been funded.
x402The HTTP 402 menu on the site. Not open, and nothing on the site can take a payment.

Other docs — Status · Architecture · Determinism · The live season · Design · Outbreak · For modifiers · Deploy and ops · The source reading · Audit log

All docs · github.com/wormsim/worm

Rendered directly from docs/glossary.md in the repository at build time. This page is a view of that file, not a copy of it. All docs.