WormReadout · read-only lens

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.
excitatory synapse (pre → post) inhibitory synapse (pre → post) nerve ring head sensory motor cord interneuron postdeirid tail

01 · Identity

STATUSCONNECTING…
BRAIN—
CONN ROOT—
TICK—
STATE HASH—
LAST ADVANCE BLOCK—
CURRENT BLOCK—
BLOCKS SINCE ADVANCE—
ADVANCE AGE—
STALE WINDOW—
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.

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.