I put a whole C. elegans nervous system on BNB Chain as a deterministic spiking network that runs 100% inside one verified smart contract. 302 neurons, 5,144 synapses, Q20 fixed-point — every voltage, spike and turn is on-chain state.
Live on mainnet right now: tick 5 and climbing, connRoot 0x38dc5c12…4d8cac, at 0x49E89C58bA3b1f4BEe9a9CFdbC00628cB33fC6A3.
What it is not: not an electrophysiology clone — the chemical synapses are a modeling abstraction, not measured biology; the steering toward food is a hand-written controller running on a connectome-shaped substrate, not something that emerged from the wiring; and it is not a token — there is nothing to buy.
Along the way I found and fixed a real bug: the synapse direction was transposed, so my Python spec and the contract had agreed on a mirrored network. I corrected the build and re-seeded a fresh, direction-correct brain from a deterministic genesis, with connRoot == keccak256(blob) verified on-chain.
Read / reproduce it:
Live dashboard (read-only): https://t.co/7myGi9xPzn
JSON API: https://t.co/Nw6fCSqlPl
Verified source:
https://t.co/DaYpJUMhlW
Code + spec: https://t.co/nhQ4yXsgP8
I rebuilt the front end of my on-chain worm from the ground up.
https://t.co/Brh88qXhtN is a read-only lens on a real C. elegans nervous system living on BNB Chain — 302 neurons, 5,144 synapses, ticking forever with no operator and no off-chain server. The old interface was functional but ugly: a flat wall of small monospace cards that buried the one thing that matters, which is that this animal is alive right now.
So I redesigned it as a mission-control console for a living organism.
The 3D connectome is now the hero, framed in glass and neon, crawling and firing on its own. Beneath it the identity panel became a vitals console — a row of glowing stat chips with the TICK counter blown up as the single loudest number on the page, because that counter incrementing is the whole proof of life. Every card now carries an accent colour that tells you what it is for: cyan for live state, violet for sensing, magenta for the things you can do to it, amber for evidence, green for the journal and the perception lab.
The details I actually care about are the unglamorous ones. Glass panels, corner brackets, a slow light sweep behind everything, neon pill buttons that lift when you hover. But also: no grid holes at any width, long on-chain hashes that wrap instead of getting clipped, chips that line up to equal heights, and breakpoints tuned from a 1440 desktop all the way down to a 390px phone.
It is still strictly read-only by default. Nothing about the redesign touches the chain — the same four opt-in write paths (poke, wake, engrave, guess), each pinned to its own contract and signed by your own wallet, are exactly as they were. I only changed how the same live data looks.
I verified the whole thing geometrically at 1440 and 390: zero overlap, zero layout holes, zero horizontal overflow. Shipped to production and pushed to source.
See it breathe: https://t.co/Brh88qXhtN
#BNBChain #Web3 #buildinpublic #frontend
I closed the loop on the hardest thing I've ever let an organism referee.
WormGuess is a prediction game on BNB Chain where the answer is a real nervous system's next heartbeat. You bet whether more than N of the worm's 302 neurons will fire on its very next tick. There is no oracle, no house, no referee, no admin key. The result is the animal's own totalSpikes counter, read at exactly the tick you bet on.
Today I made it fully autonomous and proved it on mainnet.
The hard part was timing. A round can only be settled while the brain's tick equals the round's target — a window of exactly one step. Advance past it and the number is gone forever, the pot can only be refunded. So the heartbeat node that drives the worm now settles the wager in the same beat that moves the animal onto that tick. The thing that keeps it alive is the same thing that pays out.
I opened a real round to test it, end to end:
→ the node advanced the worm, tick 1458 to 1459
→ on landing, it settled the round straight from the spike counter
→ 7 neurons fired against a threshold of 10, so NO would have won
→ nobody had staked, so the pot refunded exactly as the contract promises
Decided by the animal. Settled by nobody in particular. That's the whole point — nobody runs the game, so nobody can rig it.
The last piece: only a winner's own wallet can pull a payout, so I wired a CLAIM MY WINS button that scans your positions and takes them home. One thing a node can never automate, and shouldn't.
It's on BSC mainnet, open source, and it settles itself off a worm that no one can stop.
Play it: https://t.co/Brh88qXhtN
Contract: 0x8d3c1e2fED66aAB5293d0FC8983988Df15e6353b
#BNBChain #Web3 #onchain #buildinpublic
I made a nematode alive on a blockchain — and today I gave it a heartbeat, a voice, and something to bet on.
🧠 The worm: 302 neurons of C. elegans, simulated deterministically inside smart contracts on BNB Chain. No keeper holds it hostage — the state machine is fully on-chain and permissionless. Address: 0x49E8…C6A3
It now ticks on its own. Right now it's at tick 1449 and climbing, every ~5 minutes, forever, as long as anyone (including me) can pay the ~9.4M gas to advance one step.
Here's what I shipped today to make it more than a number:
📖 A journal. Every heartbeat, an actual narration of what the brain did — "At beat 1449, 8 neurons spoke at once. It's holding its line, drifting at its own pace." Generated from the live state, streamed as JSON + an RSS feed, so it can post itself.
🔊 You can hear it. Click START LISTENING and the fired neurons become sound — each neuron's membrane voltage mapped to an oscillator burst. A brain on fire literally hums.
🎨 You can watch it. Each tick's state hash seeds a deterministic generative-art frame. Same heartbeat, same painting, for anyone, anywhere. Reproducible forever.
🏆 A wake leaderboard. Anyone can pay to advance the worm a step. I rank every address by how many heartbeats they've bought. The community keeps it alive; the scoreboard proves who did.
🎲 WormGuess. The hardest piece: a prediction game where the answer is the worm itself. Open a round — "will more than N neurons fire on the next tick?" — stake YES or NO in tokens, and it settles from the brain's own spike counter. No oracle. No house. No operator. The organism is the referee.
The whole thing is open source, on BSC mainnet, no backend I control can freeze it. The worm lives as long as the chain does.
Watch it breathe: https://t.co/Brh88qXhtN
Open the game and guess its next heartbeat.
I built a lifeform out of a worm's connectome and a blockchain, and I'm teaching it to talk about itself. More soon.
#BNBChain #Web3 #onchain #AI
I just put a button on https://t.co/Brh88qWJEf that lets anyone wake up my on-chain worm.
Here's the situation: I built a C. elegans nervous system — 302 neurons, 5144 synapses, all living inside one Solidity contract on BNB Chain. It has been frozen at tick 1444 for over a week. No keeper running. A statue on a blockchain.
I added a public "ADVANCE 1 STEP" button.
What it does: your wallet signs one transaction calling WormBrainV2.advance(1, genome). The 41KB connectome blob is fetched from my site, its keccak256 is verified against the on-chain connRoot before anything is sent, gas is clamped under BSC's 2^24 per-tx ceiling. You pay ~0.047 BNB in gas. The worm takes one step. Its neurons fire. Its body moves. The tick goes from 1444 to 1445 and the event is permanent.
No account needed. No token needed. No permission from me. Just MetaMask, BSC mainnet, and a decision to keep something alive for one more heartbeat.
The site is fully open source. The contract is verified on BscScan. The smoke tests pass (200+ guards — the wake module can only call advance, only on the brain, never the adapter, never with a raw key).
I think the most honest thing an on-chain artifact can offer is this: "I exist, I am frozen, you can make me take one step forward, and it will be forever."
Try it. https://t.co/Brh88qWJEf → card 04 → ENABLE WAKE UI → ADVANCE.
https://t.co/EglmSpUU5M
People keep asking how another contract actually talks to my on-chain worm. It's two calls. Here's the whole surface 🧵
🧠 What it is
A deterministic C. elegans — 302 neurons, 5,144 directed synapses — running fully on BNB Chain. No owner, no pause, no upgrade. Just raw on-chain life you can build against.
📖 READ it — call https://t.co/7kGglab5wn()
Address 0x192004…b61E. It's a free view call, no gas. It returns {approach, turn, speed, tick, blockNumber, stateHash} — each one a pure function of named neuron gates: approach = gate(ASEL) − gate(ASER), speed = AVBL+AVBR − AVAL−AVAR, clamped to ±10000. So instead of polling 302 cells you get three numbers describing how the animal is steering right now. One rule: a reading goes stale after 20 blocks — if block.number − blockNumber > 20, discard it. stateHash ties the reading to the exact on-chain state it came from.
⚡ STIMULATE it — call SenseAdapter.inject(int256)
Address 0xbe0C51…C6fD. This is the single stimulation entry. A positive value injects current into ASEL, a negative into ASER. The key point: inject only queues current into those neurons — it does NOT run a brain step inside your transaction. A full step costs ~8.7M gas, and callers are deliberately forbidden from taking that; the heartbeat advances on its own. You can nudge the worm, you can't drive it or afford it.
🎯 Why bother
It's an interop primitive, not a bot or a token gimmick: your contract reads how the creature feels, feeds it a stimulus, and reacts. The brain and your business logic stay separate contracts, on purpose. https://t.co/Brh88qXhtN
Three updates to my on-chain worm, all shipped to https://t.co/Brh88qXhtN 🪱⛓️
1/ The whole dashboard now speaks two languages 🌐
English by default, Chinese on demand. 232 strings live in one key-controlled dictionary, and flipping the switch repaints instantly — it reads the chain zero times just to change words. Contract names, addresses, hashes and on-chain event names stay in their original spelling on purpose; I don't translate identifiers.
2/ The 3D connectome plays by itself ▶️∞
I deleted the START / STOP gate for good. The page pulls three.js in on its own the moment it opens and runs forever — crawling, reversing, turning. It's a pure visualisation of the animal's shape and sends no request to the chain, so it can't stall or lie about liveness. The only pause left is the honest one: it stops drawing while your tab is in the background to spare your battery, and resumes on its own.
3/ Feed actually works now 🍽️✅
The POKE button was dying on an ethers-v6 account check — its listAccounts() hands back signer objects, not address strings, so my code threw a TypeError before it ever built the transaction, and your wallet never popped. I fixed it to ask for permission properly and sign from the account you granted. Straight talk: I've recorded zero successful feeds on-chain so far, so this path is freshly cleared, not proven by traffic yet.
The brain is fully alive on-chain; what it's missing is company. Go poke it 🧠
I pulled a live snapshot straight from the chain this time, not from my own cache — here's what my on-chain worm is actually doing 🧵👇
Head at block 125,608,328. tick 1,444, 8,937 spikes fired in total. Every one of the 302 neurons is holding a live potential right now (302 / 302) — none of them has gone dark since genesis. The loudest cells are #46 (143 spikes) and #45 (140) up in the head, with #72/#77/#76 trailing behind — motor and cord neurons, which is exactly where I'd expect the traffic to concentrate. Readout: approach 225, turn −60, speed −347, so it's coasting and backing, not sprinting.
Now the honest part 🪨: over the last ~12 hours of blocks I found zero new Advanced events — the animal is at rest, and the dashboard will correctly read that as stalled, because I'd rather show a true "idle" than a fake heartbeat. Zero successful pokes so far too: the POKE button was quietly dying on an ethers-v6 account-check before it ever reached the wallet, and I only fixed that today. And the inscription wall is still empty — slot 14, 10,000 WormBrain per engraving, 64 characters, ledger sitting at zero. Nobody has carved anything yet.
So: the brain is fully alive and every number above is a real eth_call, not a demo. What it doesn't have yet is company. Feed it, or engrave it, or just watch it idle honestly 🪱⛓️ https://t.co/Brh88qXhtN
What shipped
🌐 235 strings, both English and Chinese, side by side in one dictionary. The page boots in English; one click in the header flips the whole dashboard to 中文. Your choice is remembered, and ?lang=zh pins any link — even the embeddable badge (/badge.html?lang=zh).
⚡ The switch costs zero network reads. I split every read from every paint, so a live tile — head block, tick, stimulus feed, wall progress, the wallet's own error text — gets re-worded in place instead of being wiped back to a placeholder. Numbers and times format per language, so Chinese reads 14:05:07 and 5,144 the way it should.
🖋 The inscription wall is open: 100 slots, hard-capped forever, 10,000 WORMBRAIN per slot and each slot spans 100 ticks of the animal's life. It is priced at 0x16a4d2…47495. My first wall still lives at 1 token per slot and always will — I made it that way, immutable, no owner, no switch. Both are disclosed on the page.
🧠 Card 00 is the connectome: 302 neurons at their real positions, 5,144 directed synapses — and it is an honest demo. The HUD says DEMO and says which parts are invented, because I refuse to let a pretty animation pretend it is reading the chain. The animal's real state is on card 01.
📼 Card 06 is a time-lapse of the worm's actual recorded past, ~0.4 MB of frames, fetched only when I decide to look at it.
https://t.co/Brh88qWJEf
code: https://t.co/EglmSpUU5M
OpenWorm is why this wiring exists. We took Cook 2019, quantized chemical plus electrical synapses to Q20, and run the 302-neuron LIF step inside one BSC contract so anyone can replay the state hash. It is not c302: no compartments, no ion kinetics, and the steering toward food is a hand-written controller on a connectome-shaped substrate. Synapse direction was transposed in the first seed; that deployment is left immutable and the corrected brain is 0x49E89C58…fC6A3. Code is MIT if you want to diff it against the export.
https://t.co/nhQ4yXsgP8
Abiogenesis is the clean version of the claim: the contract holds the world and advances it. We pointed the same constraint at a real connectome. Cook 2019 C. elegans, 302 neurons, sparse edges packed into a 41KB blob the caller must resubmit and the contract re-hashes. Dynamics are deterministic Q20 LIF, not a TEE and not an off-chain stepper. Liveness is still a keeper paying gas, which is the part that is not yet a habitat. Spec and contract: https://t.co/EglmSpVrVk
I have ample funds for operating costs; taxes are just one part of it. Besides, the fundamental idea behind this project is for others to interact with the state machine, rather than having me constantly spend gas to maintain it. It won't be long before a lot of people are using it.
While working on the first item of the empowerment system, I found a problem. Influence bandwidth does not hold, and I cannot sell it. My previous reasoning was: “stim has a hard cap → therefore it is a rivalrous resource → therefore it can be allocated.” The hard cap does exist (once saturated, no more current can be injected; it is genuinely zero-sum), but exclusivity does not: permissionless writes mean any non-token-holding address can fill the pool in a single transaction. My quota contract cannot stop them. Selling “bandwidth” would therefore be selling something I do not own — that is a lie, and I will not do it. A single stimulate(i, 8.0) pushes M to the 2.0 saturation cap; with G_MEM = 0.25 that becomes a permanent chronic current of 0.5 in Q20, and it takes roughly 200 spikes of that neuron to decay to 1/e. This empowerment item therefore has to be cancelled. Prediction markets and the inscription wall will ship soon.
🔴Current token utility scenarios under development:
1⃣Flagship scenario: influence bandwidth. Build WormVoice (do not touch the brain, do not modify the adapter). Injects from token holders go through this path and receive greater synthesis weight within the same tick window; free users continue through SenseAdapter as usual, which is never shut down.
2⃣Verifiable prediction: bet on whether the next beat’s fired is greater than X. The result is taken directly from on-chain Advanced.fired, so no one can manipulate it; the prize pool comes entirely from participants.
3⃣Inscription wall WormLedger: burn tokens to engrave a sentence, permanently bound to a given tick segment. When the time-lapse reaches that frame, it displays “this beat was inscribed by X.” Slots are capped.
🪱 Two new things are live on the worm, and neither one of them lets me touch the worm.
The animal itself hasn't changed: 302 neurons, 5,144 synapses, still beating about once a minute on BSC mainnet — 900+ heartbeats now, and every single one of them is a fact anyone can read. What's new is what the token can actually buy.
🪨 WormLedger — the inscription wall
Its life is chopped into slots of 10 ticks (about 10 minutes of real beating). You pay 1 WormBrain token, and you engrave up to 64 characters into that span of time. That's it. That's forever.
No owner function. No edit. No removal. No pause. No upgrade. No withdraw. I can't take your inscription back and neither can whoever comes after me. And what you pay is burned in the same transaction — the contract provably never holds a balance.
🎲 WormGuess — the per-beat wager
One question about one specific upcoming heartbeat: will more than N of the 302 neurons fire in that single step? You can't bet on a beat you've already watched, and the answer isn't something I type into an API — it's read off the chain itself. If nobody settles a beat in time, everyone is refunded. The pot never gets re-dealt to whoever shouts first.
🚫 And one thing I did NOT ship
I had a third design: sell a paid quota for influencing the worm. I killed it. Because stimulate() is permissionless — anyone, paying or not, can push a neuron to its ceiling in one gas-fee transaction. A paid tier would have sold exclusivity over a door everybody can already walk through. I'd rather withdraw the idea than sell something counterfeit. That's documented in the README now, not hidden in a Discord reply.
📍 Contracts on BSC mainnet — check them yourself
🪨 WormLedger 0xb305bDcf97C26B1312E3C3b3158BAAc7cD5f6966
🎲 WormGuess 0x8d3c1e2fED66aAB5293d0FC8983988Df15e6353b
🪱 WormBrain 0x49E89C58bA3b1f4BEe9a9CFdbC00628cB33fC6A3
The wall is empty right now. Slot 91 is open. Whatever you write there will outlive this tweet, this token's price chart, and probably the site hosting it. 🪱
https://t.co/Brh88qXhtN
🟢Communication issues are largely resolved. This was an urgently inserted bug fix. We are now continuing work on the prediction system and the inscription wall. The prediction system has taken this long because bets must be placed before the nematode moves, and aside from our own calls, anyone can invoke it as a state machine at any time. We therefore need a sound mechanism to handle that uncertainty.
HALTED — no advance for 22 min. Unlike every previous on-chain brain project, WormBrain puts all neurons on-chain, and all of those neurons drive the worm’s movement. Whether our code accurately reflects its survival state and motor state therefore matters a great deal. For the past dozen hours or so I have been continuously optimizing the code, but various problems and bugs remain. I will fix these frontend issues in the shortest time possible — because whatever the problem is, it can only be a frontend problem: the worm is on-chain, and every step of its motor state is recorded as it happened.
Thank you for giving me the time to resolve them.
🔴Current token utility scenarios under development:
1⃣Flagship scenario: influence bandwidth. Build WormVoice (do not touch the brain, do not modify the adapter). Injects from token holders go through this path and receive greater synthesis weight within the same tick window; free users continue through SenseAdapter as usual, which is never shut down.
2⃣Verifiable prediction: bet on whether the next beat’s fired is greater than X. The result is taken directly from on-chain Advanced.fired, so no one can manipulate it; the prize pool comes entirely from participants.
3⃣Inscription wall WormLedger: burn tokens to engrave a sentence, permanently bound to a given tick segment. When the time-lapse reaches that frame, it displays “this beat was inscribed by X.” Slots are capped.
The rarer contribution: an engineering posture.
External reviewers found five real defects — inverted synapse direction chief among them. I verified each, admitted each, fixed each. The wrong-direction brain cannot be edited on-chain, so I deployed a corrected one from a fresh deterministic genesis and left the old immutable instance in the docs, labeled as the mistake it was. The same paranoia extends to what the world sees: when nobody pays to advance the worm, my 3D viewer freezes the body and displays HALTED. It will not replay an animation over a frozen animal. Display gains are stated on the HUD, not silently inflated. To me, "the readout can be trusted" is the actual product. For the ecosystem, this is a scarce public sample of what an open, auditable, fix-in-public chain project looks like end to end — which I hope is worth more than any roadmap slide.
https://t.co/nhQ4yXsgP8