a permissionless on-chain C. elegans on BSC mainnet · this page reads the deployed
WormReadout & SenseAdapter and never advances the animal by itself · the only two ways anything
is ever spent here are the opt-in poke and the opt-in engraving, each pinned to one contract and
signed by your own wallet
00 · 3D worm — the connectome, animated as a demo
a pure visualisation, and it plays by itself: the page pulls in three.js the moment it
opens, alongside the first chain reads, plus the anatomy from data/graph.json and
data/layout.json — 302 neurons at their real positions and the 5,144 directed
synapses — and then runs forever, crawling, reversing and turning. There is nothing to
press. It sends no request to the chain: the wave, the firing and the pulses along the
fibres are invented for the eye. The animal's actual state is on card 01. It stops
drawing while the tab is in the background and resumes on its own when you come back.
the 3D demo is loading — three.js is coming down right now. Drag to orbit, scroll to zoom, hover a node for its name and its class.
Liveness is judged on elapsed time against the heartbeat this page has measured, not on a block count: BSC now seals a block in well under a second, so a stale window written in blocks no longer means what it did.
02 · Body (only read() → approach / turn / speed)
APPROACH
—
TURN
—
SPEED
x = turn (−10000 left ↔ 10000 right), y = approach (−10000 down ↔ 10000 up), size = |speed|.
A point is drawn only for a NEW on-chain tick — the page never fabricates a trajectory between beats.
03 · Stimuli (inject / stimulate / sample)
stim(ASEL) live—
stim(ASER) live—
POOL RATIO (now, Q20)—
LAST SAMPLED RATIO—
Δ vs PREVIOUS BEAT—
Stimulation accumulates within a block; a later same-block current is ADDED, it never overwrites.
04 · Poke the worm (opt-in · your wallet · your gas)
RESULTdisabled — this page stays read-only until you enable the poke UI
The only write path on this site: it encodes exactly one call, SenseAdapter.inject(int256), signed
and paid by YOUR own wallet (a few ten-thousandths of BNB). The brain is passive — your current
queues into the chemoreceptor and bites on the NEXT advance by a keeper node. Nothing on this
page can move, pause or own the animal.
05 · Inscription wall (read-only until you arm it)
WALLnot loaded — nothing is read from this card until you press READ THE WALL
PRICE PER SLOT (MUST ARRIVE)—
CONTRACT FLOOR (PRICE ÷ 0.97)—
SLOT SPAN—
NEWEST SLOT—
ENGRAVED SO FAR—
LOG SCAN COVERAGE—
The most recent slots of the animal's life — up to the last 24, fewer while the wall is
young — each one purchasable forever. A magenta brick carries
text that is already on-chain and can never be edited, overwritten or removed; the paid token is
burned in the same transaction, so the ledger holds no balance and pays no one. The price is what
must ARRIVE, and the token levies a 3% transfer tax, so the contract floor is price ÷ 0.97 — the
engraving form deliberately prefills 2% above that, because it cannot know how the token rounds
its own fee and a reverted inscription still costs gas. Everything above is an eth_call or an
Inscribed event log — this card reads the deployed WormLedger at
0x16a4d26C90fE7613f22Da41150E4847e1fE47495 (100 ticks per slot, 10,000 token per inscription)
and copies nothing from a server. An earlier wall at 0xb305bDcf97C26B1312E3C3b3158BAAc7cD5f6966
is superseded, not retired: its 1-token price is immutable, so it stays buyable forever and
nothing on this site points at it any more.
CHECKtype above — the contract's own text rule is applied here before anything is signed
WALLETno wallet attached
ALLOWANCE—
Arming this form loads a second module that can encode exactly two calls:
ERC20.approve(ledger, amount) and WormLedger.inscribe(slot, text, nominal). It never touches
the brain, never takes a key, and every signature is confirmed inside your own wallet. A slot
is permanent: two transactions, your token, your gas, and no undo.
06 · Time-lapse (the worm's recorded past)
REPLAYnot loaded — ~0.4 MB of replayed on-chain frames, fetched only on click
Every frame is a historical eth_call replay of the brain's real state at that heartbeat's
block — 302 membrane voltages plus body pose, nothing simulated or interpolated. The
undulating silhouette is a schematic of the four recorded pose scalars, not a shape fit.
Regenerate incrementally with scripts/gen_replay_data.mjs.
07 · Evidence (recorded mainnet verifications)
These are the three on-chain records kept in the project README. They are history, not live polling.