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. It loads three.js on demand 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.
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.
3D demo is idle — press START 3D. 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.