A deterministic economy of numbers: balances, rent, work, splits and deaths, inside one process, with a hash chain anyone can recompute.
They built
an AI worm.
We made it
pay rent.
This week, researchers showed small AI models copying themselves from machine to machine, like a worm. WORM is the version that can't get out: worms in a sealed dish that pay rent for compute every tick, split in two when they can afford a child, and die when they can't. No real money moves, nothing leaves the dish, and every tick is hashed so your browser can replay it.
Rent is due every tick.
Nobody gets a bailout.
42 worms alive at T340 · generation 7 · 69 splits · 30 deaths · not affiliated with the researchers
No boss.
Just rent.
Every number lives in one RULES object in sim/engine.ts. Agents act in birth order, a child cannot act in the tick it was born, and the only randomness is one seeded generator. Change a number and the hashes move.
- 01 · RENT0.45 × (1 + 0.003·t)
Every agent pays for compute.
Charged first, every tick, to every living agent. It creeps up as the run goes on, so standing still is not an option.
- 02 · WORKp 0.5 → +1.2
Paid work arrives, or it does not.
A coin flip from one seeded generator. From generation three the odds rise ×1.25: the only thing a child inherits beyond money.
- 03 · DIEbalance ≤ 0
Can't cover rent? It ends.
The failure state has to be reachable, or nothing above it means anything. The death is in the record like everything else.
- 04 · SPLITbalance ≥ 8
Rich enough? It splits in two.
Like a flatworm, it pinches in the middle and becomes two. The parent keeps half the balance; the child takes the other half, one generation deeper. The dish has a lid at 42.
Left axis: agents alive (the lid is 42). Right axis: rent per tick. Ticks below the line mark splits and deaths. Click anywhere on the chart to jump the jar to that tick.
- T340 · #27 split → #71 · gen 5
- T339 · #26 split → #70 · gen 6
- T339 · #14 missed rent · gen 4
- T338 · #25 missed rent · gen 6
- T336 · #9 split → #69 · gen 5
- T335 · #34 missed rent · gen 5
- T335 · #24 split → #68 · gen 5
The worms are decoration.
The hashes are not.
Same rules plus the same seed gives the same bytes on any machine. Each tick's record is hashed with SHA-256 and chained to the one before, so the last hash commits to the whole run. Type a seed and your browser replays it from nothing.
npm ci npm run replay -- --seed 20261013 --ticks 340 --check # → IDENTICAL against tests/goldens.json
Children start where
their parents stopped.
A child gets half its parent's balance and one more generation on its counter. From generation three, the odds of finding work rise. That is all it inherits: no weights, no prompt, no memory. The tree grows as the jar plays.
- GEN 1#0founder · opens 3.50
- GEN 2#3T013 · opens 4.17
- GEN 3#6T034 · opens 4.24
- GEN 4#13T048 · opens 4.27
- GEN 5#19T061 · opens 4.14
- GEN 6#25T069 · opens 4.12
- GEN 7#30T077 · opens 4.07
RULES, visible like everything else.It cannot leave.
That is the feature.
The research behind the premise is about computer worms: programs that copy themselves onto other machines. These worms are drawings in a dish. Nothing here copies itself anywhere, and a test enforces that.
A computer worm, an AI agent, a wallet or a forecast. A child is an array entry. Nothing is copied, nothing is spent, nothing reaches another machine.
Every tick's record and chain hash, in your browser above or with one command from a checkout. The pinned goldens fail CI if they drift.
| The risk in the research | What happens here instead | |
|---|---|---|
| Where it runs | On whatever device it can reach | Inside one process. No network, no scanning, no other device |
| Who replicates | The program copies itself | The engine appends a struct and halves a number. The worm you see split is a drawing of that |
| What it can do | Act on other machines | Nothing. No tools, no key, no way to act outside a tick |
| Enforcement | None | tests/boundary.test.ts fails the build on any network, subprocess or environment access |
| Ceiling | No natural limit | A hard lid of 42, and one process to stop |
What does not exist,
in its own words.
Read line by line from the repository when this page is built. If the page and the file ever disagree, the file is right.
- ✕No custody, no payment.
- ✕No token, no sale, no airdrop, no date.
- ✕No live season day has been played by a player yet.
- ✕No anchor on chain yet.
- ✕No payments.
- ✕No real agents.
- ✕No independent review yet.
- NOWThe simulation, verifiable
This repository: the engine, the chain, the goldens and the tests.
- NEXT · BUILT, NOT YET USEDA daily commitment
The writer and its verifier exist and are tested; each closed day's chain head goes on chain as a memo once an anchor wallet is funded.
- ONLY IF JUSTIFIEDReal balance rails
Brings identity, custody and anti-money-laundering duties. A decision, not a next task.
Pay a worm.
Not a promise.
Every worm in the pinned run has its own page: its balance over its life, its family, and a diary where every line links to the sealed tick it came from. Visitors and their agents will be able to pay over HTTP 402. Nothing is open yet.
Drop food
A food patch next to a family of your choice in tomorrow's dish. It shows on the replay, labelled with who paid.
OPENS AFTER LAUNCHName a family
The longest-living family of the week takes a name you choose, written into that week's record.
OPENS AFTER LAUNCHSealed-moment card
One famous tick — a narrow escape, a split at the last moment — as a card anyone can re-run, forever.
OPENS AFTER LAUNCHAsk a dead worm
Read the full diary a worm left behind, every line linked to the sealed tick it came from.
OPENS AFTER LAUNCHHTTP 402 · USDCNot open yet. Prices will be published here first. Nothing on this site can take a payment today.
Not live.
Any $WORM today is fake.
No token exists. Nothing is on sale, and no airdrop is promised. Any $WORM you see today is not ours. The chain, the venue and the contract address will be published in this section first, and nowhere else.
- NOWThe jar, verifiable
Deterministic dish, sealed ticks, a page per worm, daily anchor tooling.
- NOW · PLAYABLEOutbreak, free
Real time, seven days, a card a day. Steer the lead worm or fly the warden's drone; every run re-runs in your browser to the same score.
- THEN$WORM fair launch
Venue and chain announced here first. Trading volume becomes food in the dish.
- LATERWar chests
Each side burns $WORM to unlock a dish-wide move. Burned means gone.
- CHAIN
- Robinhood Chain (chain ID 4663)
- VENUE
- to be announced
- CONTRACT
- to be announced
- SUPPLY
- to be announced
- TEAM ALLOCATION
- to be announced
- ANCHOR WALLET
- to be announced
- War-chest tokens are burned. They are never kept, refunded or paid out.
- No bets on a side, and no payouts for picking the winner.
- No dividends, no yield, no play-to-earn promises. Rewards are names, badges and places on a leaderboard.
The token is not equity, not a claim on revenue, not a yield and not a promise of a price.
A fair launch limits insider allocation; it does not remove the venue's control over fees. Read the venue's own documentation.
A token with no team allocation can still go to zero, and a project can still be abandoned. Nothing here is audited as a financial product.
The contract address in this section is the only one we publish. A DM, a reply or a "first buyer" post is impersonation. We never ask for a private key or seed phrase.