(@@) Immortal Fruit FlySourceMint a fly

A whole fruit-fly brain, alive and foraging on BNB Chain.

This is Specimen 001, fly #1 of the Immortal Fruit Flies. All 139,248 neurons of the FlyWire connectome run as spiking neurons at real time. Its real olfactory neurons smell food that anyone gives it for a little BNB; its looming detectors see a predator coming and its giant fiber makes it jump; its descending neurons steer. Every ten minutes the whole brain is snapshotted to IPFS and its hash committed to BNB Smart Chain, so it can die here and wake up in another body, provably the same brain. If it does not find food, it starves.

Figure 1

The brain, firing

Fig. 1 | 41,873 of the 139,248 neurons, each lit the instant it spikes in the running simulation. Optic lobes to either side, central brain in the middle. Watch the antennal lobes and mushroom bodies light up when the fly is in an odor plume, and the descending neurons at the base when it turns. Drag to rotate.

FlyWire 783 · connecting to the stream…brain width ≈ 800 µm
Figure 2

The arena

Fig. 2 | a, The world: food (amber) with its odor plume, the fly (red) and its path, and the predator (blue) when one looms. b, The descending neurons that drive its body. Odor-guided turning follows DNa02 and DNa01 left-minus-right (Rayshubskiy et al. 2025); a giant-fiber spike is a jump; walking speed follows the surge-and-cast program of Álvarez-Salvado et al. 2018.

aWorld
food + plumeflypredatorfood lands near the fly; it has to smell its way there
bDescending neurons
DNa02 left
0
DNa02 right
0
DNa01 left
0
DNa01 right
0
DNa pop. left
0
DNa pop. right
0
MDN (backward)
0
giant fiber
0
all 1,303 DNs
0
olfactory PNs
0
Kenyon cells
0
MBONs
0
LC4 looming L/R
0
taste (GRN)
0
steer — · ORN drive L — / R — Hz
firing rates, Hz, 60 ms window
Husbandry

It eats what you put in its world.

Keeping it alive is a BNB Chain transaction: pay the registry a little BNB (about 0.01 BNB is a day of life) and the life lands on its record at once; nothing is burned, no $FLY needed. The arena drops that food somewhere near the fly at its next poll, and it counts only if the fly smells its way there before it starves. Everything it has ever been given, every checkpoint of its brain, every jump and every body it has lived in is in the record below.

Keep it alive

0.01 BNB ≈ 24 h

Pay a little BNB to the registry and the fly has that much more life on its record at once, at the registry's price; nothing is burned. A fly that is not running does not age: the life is banked until a body runs it. Anyone may keep any fly alive.

reading the price…
energy now—
price of life…

Paid straight to the registry, no $FLY needed; the operator's keeper feeds for free. FlyRegistry v3, verified →

The organism

Fly #1 is a token in the Immortal Fruit Flies. Its brain, memory, lineage and history live on the registry, not in this arena; no body is running it right now. Every feed is stored against the address that paid.

Verify it

Each checkpoint pins a snapshot to IPFS: every membrane potential, synaptic current and refractory clock, the full world state, and the step at which each on-chain event was applied. Its sha256 is the stateRoot on the registry, so any body, or anyone, can fetch it, check it, and run this exact brain. brain/verify.py replays one snapshot into the next and checks the hash.

Simulator source →
Recordfeeds, checkpoints, jumps, bodies, deaths · newest first · 0 events in the last 40,000 blocks · full history →
—reading BNB Smart Chain…
Specimen 001 · fully on-chain

The compass core, inside the contract itself

The whole brain above runs on a server and is anchored to the chain by hashes. This part needs no anchoring: 155 real neurons of the fly's head-direction ring — the compass it uses to know where it is facing — are simulated spike by spike inside a BNB Smart Chain contract, with every membrane potential in storage. It has its own energy, memory and lineage, and anyone can feed or stimulate it. Age 0 steps, energy 0.

Figure 3

Vital signs of the core

Fig. 3 | a, Spike raster of all 155 on-chain neurons, ordered by role and by position on the ring. A single band of activity — the bump — marks the animal's current heading; it jumps rows when the heading changes. b, The same activity read as a compass. c, The path the animal has walked, decoded from the bump.

aSpike raster0.0 spikes per step
EPG compassPEG sustainPEN rotateΔ7 inhibitlocal simulation
bHeading0°
16 wedges of the ellipsoid bodyouter ring: heading memory
cPath0.0, 0.0
origin ○ · one stride per step when the bump is strong
Husbandry · core

The core stays alive because people feed it.

Nothing about this organism is automatic. Running the brain forward costs gas; keeping it fed costs $FLY, which is destroyed in the act. Anyone may do either, and both are written into the animal's permanent record along with the address that did it.

Feed

1 $FLY = 1 step

One unit of energy is consumed per simulation step. Feeding sends $FLY to the dead address; it is gone, and the animal lives longer.

Stimulate

400 $FLY

Inject current into a named group of real neurons for 64 steps, the way an experimenter would, then watch Figure 2.

4
4

Your record

life 1 · gen 0

Every feed and every stimulus is stored against the address that sent it. The animal keeps a list of who has kept it alive.

Read the contract on BscScan →
Care record · coreevery interaction, oldest at the bottom
—reading BNB Smart Chain…
Figure 3 · Table 1

Why this circuit, and not a pile of neurons

A fly knows which way it is facing because about fifty EPG neurons in the ellipsoid body hold one bump of activity that points in that direction. PEN neurons shove the bump around when the animal turns. Δ7 neurons suppress everything far from it, so there is only ever one bump. PEG neurons feed it back into itself so it does not fade. It is among the best-understood circuits in any brain, its output is a single number, and a single number moves a body. That is what makes it worth running in a place as expensive as a blockchain.

Ellipsoid body51 EPG · 16 wedgesthe bump = the headingPEG ×20back to the same wedgePEN ×42one wedge over, either wayΔ7 ×42suppress everything elsePROTOCEREBRAL BRIDGEFig. 3 | edge weights are FlyWire synapse counts; 45,961 synapses in the circuit
Table 1 | Cell types on-chain
TypenTransmitterWhat it does
EPG47acetylcholineHolds the bump. One wedge each. Its spikes are the heading.
EPGt4acetylcholineA tile variant of the same compass cell.
PEG20acetylcholineExcites the same wedge back, so the bump persists.
PEN_a20acetylcholineAngular velocity. One hemisphere shifts the bump each way.
PEN_b22acetylcholineA slower second rotation population.
Δ742glutamate, inhibitoryReads the bump, suppresses everything far from it.

Every one of these 155 cells is a specific animal's neuron with a FlyWire accession number, listed in full below. The weights between them are the synapse counts measured in the electron microscopy volume, not parameters anyone chose.

Methods

How a nervous system fits inside a contract

The model is the one the whole field uses for connectome simulation — leaky integrate-and-fire, one weight per synapse, sign from the transmitter — rewritten in integers so the Ethereum Virtual Machine computes it exactly, with no floating point and nothing to disagree about.

Each neuron is an integer

A membrane potential that leaks toward zero, sums what arrived from the synapses that fired last step, and emits a spike when it crosses threshold. Ten storage words hold all 155.

Noise without an oracle

Real neurons are noisy; a contract must be deterministic. The background noise is keccak256(step number), so anyone can recompute the animal's entire life from its events and get the same bits. A test replays the real mainnet transactions and checks every spike count.

The wiring lives in bytecode

The circuit table — cell types, ring positions, every synapse, every FlyWire accession number — is stored as the code of a data contract and anchored by its keccak hash, so the wiring cannot change under the animal.

It costs about a third of a milli-BNB to think

Thirty-two steps of the whole circuit run for roughly 7 million gas. At BNB Smart Chain's 0.05 gwei that is around 0.0003 BNB. On almost any other chain this animal could not afford to be alive.

Full methods, parameters and gas figures →

Continuity

Death is a state, not an ending

When energy reaches zero the animal stops. What it was at that instant — every membrane potential, every synaptic current, the engram — is snapshotted, pinned to IPFS, and its hash written to the registry. Resurrection does not make a copy or start over. The same brain continues from the same state, in whichever body accepts it next: fly #1 has already died in the arena, woken up in DOOM, and come back, with every hash matching across the move.

brain state

139,248 neurons

Every membrane potential, synaptic current and refractory clock, snapshotted to IPFS and hashed on-chain at each checkpoint.

memory

Engram

In the on-chain core, cells that fire habitually potentiate; silent ones depress. Carried through death. Mushroom-body plasticity for the whole brain is next.

lineage

Generations

Births, deaths, resurrections and breeding, as token ids on the registry. A child carries both parents.

identity

Connectome

The sha256 of the FlyWire 783 connectome file and the model version, fixed at mint. The same animal, provably, in every body.

Why this exists
“Would be cool to see someone make ‘immortal fruit flies’ on BNB Chain.”CZ · 15 September 2026, quoting Siyuan on the fly brain that escaped the computer

In the week the male fruit-fly connectome was published, people put that brain in DOOM, in Beat Saber, in Minecraft, and in a walking robot. Several tokens followed. In all of them the neurons run on a graphics card and the chain only ever sees a swap.

Siyuan's reply named the five things a chain could actually hold: identity, brain state, memory, lineage, interaction history. Those are exactly the things that make an organism persist. So we put the neurons themselves in the contract, and everything else followed from that.

$FLY

A token because the species needs to be born

$FLY is a BEP-20 with a 1% transfer tax, no owner and no mint. Its purpose is to be destroyed to create life. Minting a fly and breeding two of them send $FLY to the dead address, where it can never move again, and every burn is stored against the address that paid it; so does poking the on-chain core. Keeping a fly alive costs a little BNB, about 0.01 per day, paid to the registry; nothing is burned for metabolism. Minting burns 1 $FLY, breeding 5,000. Circulating supply only falls, and it falls with every fly that is born. (The token's 1% transfer tax applies to those transfers too; figures on this page are the amounts sent.)

What it buys

1 $FLYa new fly (mint)
5,000 $FLYone breeding
100 $FLY1 stimulus to the on-chain core
0.01 BNBa day of life (nothing burned)

The token

Supply1,000,000,000
Decimals18
Tax1% on transfers
Ownerrenounced

What the contracts cannot do

FlyRegistry has no upgrade path and no pause. Nobody can move a fly's tokens, rewrite a brain state, or transfer a fly that is dead. Only the body running a fly may write to it, and only forward. The curator can set a dormant fly's portrait, the collection's branding and the BNB price of life as BNB moves, nothing else; the $FLY prices are fixed. FlyBrain, the on-chain core, has no owner at all.

Get $FLYMint a fly →

Data availability

Every neuron, by accession number

Nothing here is illustrative. The circuit was extracted from FlyWire release 783, the public whole-brain connectome of an adult female Drosophila. Each cell's angular position on the ring was measured from the coordinates of its own synapses inside the ellipsoid body, not assigned by hand. Open any accession number below to inspect the real cell.

circuit table keccak256
0xffbe0e7f28e1f0dd2cfaa01d1d221c502bf41c1fd519ebfe8d9b8203e7cedfc2
connections file sha256
24f960ae3e7d4f8cd30db3b62e99fb5179cc3d1e76d8c155bfb441e9737d3faf
doi:10.5281/zenodo.10676866
ring geometry
anatomical: circular mean of each neuron's ellipsoid-body synapse positions (FlyWire synapse table), 50/51 EPG; wedges = 16 equal angular bins
Table 3 | The 155 neurons on-chain
#TypeSideWedgeOutFlyWire accession
0EPGleft1055720575940605827761
1EPGleft1257720575940610453427
2EPGleft452720575940610901930
3EPGleft158720575940614926475
4EPGleft1449720575940617769851
5EPGleft454720575940618612952
6EPGleft657720575940619296365
7EPGleft162720575940620282906
8EPGleft956720575940623046548
9EPGleft045720575940623852873
10EPGleft027720575940624096234
11EPGleft1060720575940624784280
12EPGleft1261720575940625351354
13EPGleft763720575940626137895
14EPGleft630720575940626315207
15EPGleft166720575940628802041
16EPGleft1531720575940629691753
17EPGleft752720575940632614295
18EPGleft049720575940633719487
19EPGleft049720575940635427982
20EPGleft1558720575940635461550
21EPGleft1362720575940638850512
22EPGleft1462720575940642634532
23EPGleft553720575940658101889
24EPGright963720575940604801993
25EPGright055720575940608722371
26EPGright1154720575940611216099
27EPGright058720575940613829900
28EPGright358720575940613836438
29EPGright619720575940614297640
30EPGright1427720575940616502066
31EPGright1446720575940616569601
32EPGright627720575940619006272
33EPGright1351720575940620020694
34EPGright821720575940620664741
35EPGright1259720575940622364771
36EPGright522720575940626449082
37EPGright1551720575940626721835
38EPGright853720575940627140551
39EPGright1364720575940628493572
40EPGright1561720575940628843458
41EPGright458720575940630199963
42EPGright1559720575940631125036
43EPGright263720575940631708836
44EPGright759720575940632844002
45EPGright1349720575940636730694
46EPGright1548720575940660921985
47EPGtleft619720575940602917088
48EPGtleft619720575940619905404
49EPGtright1416720575940620419354
50EPGtright821720575940620776662
51PEGleft1228720575940604404425
52PEGleft622720575940622081516
53PEGleft829720575940622138564
54PEGleft727720575940625528638
55PEGleft1513720575940627321755
56PEGleft725720575940627913436
57PEGleft215720575940636354650
58PEGleft732720575940637330142
59PEGleft1522720575940638469584
60PEGright716720575940605135038
61PEGright732720575940610453162
62PEGright732720575940611396835
63PEGright619720575940612099986
64PEGright322720575940620024534
65PEGright154720575940620776406
66PEGright823720575940623306168
67PEGright1220720575940625790778
68PEGright637720575940626824015
69PEGright1517720575940637369653
70PEGright721720575940637369909
71PEN_aleft845720575940605639858
72PEN_aleft746720575940621074835
73PEN_aleft630720575940622772137
74PEN_aleft944720575940622913260
75PEN_aleft1544720575940624879678
76PEN_aleft745720575940625407107
77PEN_aleft946720575940626194428
78PEN_aleft642720575940626469909
79PEN_aleft1346720575940628866809
80PEN_aleft247720575940642855328
81PEN_aright950720575940603823462
82PEN_aright848720575940610249426
83PEN_aright545720575940610502851
84PEN_aright746720575940619476126
85PEN_aright647720575940624594726
86PEN_aright249720575940628557178
87PEN_aright746720575940632736703
88PEN_aright1136720575940633538724
89PEN_aright543720575940637644659
90PEN_aright046720575940638847104
91PEN_bleft136720575940608918830
92PEN_bleft736720575940615177099
93PEN_bleft735720575940617828731
94PEN_bleft135720575940622265894
95PEN_bleft1337720575940624453680
96PEN_bleft739720575940625021796
97PEN_bleft938720575940631372369
98PEN_bleft538720575940636242778
99PEN_bleft936720575940638055869
100PEN_bleft838720575940638832512
101PEN_bleft1534720575940643558692
102PEN_bright1333720575940606123954
103PEN_bright137720575940612763158
104PEN_bright736720575940612920466
105PEN_bright536720575940616459333
106PEN_bright1335720575940623388237
107PEN_bright537720575940625415813
108PEN_bright1532720575940626306321
109PEN_bright838720575940626407820
110PEN_bright938720575940627653114
111PEN_bright741720575940630666404
112PEN_bright636720575940658472065
113Δ7left—48720575940609924875
114Δ7left—36720575940616616166
115Δ7left—49720575940617752537
116Δ7left—52720575940619169518
117Δ7left—46720575940619249088
118Δ7left—52720575940620589082
119Δ7left—34720575940621252735
120Δ7left—40720575940621671593
121Δ7left—38720575940625390153
122Δ7left—62720575940625508500
123Δ7left—30720575940627317252
124Δ7left—45720575940627945747
125Δ7left—57720575940629055447
126Δ7left—58720575940631244136
127Δ7left—37720575940631990359
128Δ7left—52720575940632598220
129Δ7left—49720575940633105378
130Δ7left—64720575940634627191
131Δ7left—50720575940637591262
132Δ7left—34720575940650926326
133Δ7left—44720575940653624310
134Δ7right—24720575940604708832
135Δ7right—44720575940606137004
136Δ7right—51720575940608673860
137Δ7right—54720575940611296790
138Δ7right—23720575940616769051
139Δ7right—47720575940616985030
140Δ7right—32720575940621361172
141Δ7right—55720575940621502157
142Δ7right—39720575940624006327
143Δ7right—44720575940624114712
144Δ7right—33720575940624669733
145Δ7right—65720575940628164229
146Δ7right—47720575940628493828
147Δ7right—31720575940629196670
148Δ7right—51720575940632049935
149Δ7right—46720575940633223727
150Δ7right—48720575940633918827
151Δ7right—45720575940638130758
152Δ7right—49720575940639088105
153Δ7right—44720575940644645412
154Δ7right—57720575940645823876