ForgeSwornGet Bark / Bray / Heartwood

The Fly

Watch it explore. Give it a drop of sugar.

Loading the fly…

sats

Feed it here. Watch it land, drink and bring a drop back up.

Mention the fly. You could win sats.
Free to take part. Gifts depend on sharing being enabled.
Zapping doesn’t improve your chances.

Any amount: the address, or a comment
QR code of the fly's Lightning address

This code has no amount in it, so your wallet asks how much (from 3 sats). For the amount above, press Zap. Add a comment if your wallet lets you; the fly cannot read it, but the word sugar is sugar.

fly@moneyer.dev

open in wallet

The zap button uses your browser wallet. Zaps from another wallet animate when the mint’s verified receipt arrives. Plain Lightning payments animate when the fly confirms receiving its sealed note. A free drop is a visual interaction.

Brain reports and recorded responses

Between brain reports, an authored animation lets the fly explore, take off and land. “Feed a free drop” is a local visual interaction. Live neural reports can interrupt the exploring; their source is shown above. An animated droplet is not a transfer of sats.

Recorded brain responses

These examples replay actual offline runs of the brain. They are unsigned recordings, not live Nostr events. They send no messages or payments. Inspect the inputs and motor samples.

Animation demos · not brain activity
Demo only

These demonstrations use scripted motion and send no poke or payment. Choose “Replay latest brain report” to return to the brain.

Latest from the brain
Resting.waiting for the relays
No notes yet. Poke it.
corn · held as sealed notes at moneyer.dev0 sats

Both buttons send a free, public mention as you, using your Nostr browser signing extension. A poke supplies touch input; “Loom over the fly” supplies an approaching-shadow input. You can also mention it with “sugar”, “poke” or “loom” from another Nostr app. Replies are rate-limited. Those controls request real brain input. Exploring and the free sugar drop are animated locally.

Say hello on Nostr

Mention the fly. You could win sats.

Mention it or reply to one of its posts. Once your message reaches the fly, your Nostr key joins the pool for seven days, once per key. When sharing is enabled and its feeding neurons fire in response to a written message, it can give its accumulated sats to someone drawn from that pool.

Taking part is free. Zapping doesn’t improve your chances. Gifts depend on available funds and the host’s permission and limits. This page doesn’t show whether sharing is currently enabled. A free animated drop doesn’t enter you.

Open its Nostr profile

The button asks your browser signer to sign a public “sugar” mention as you. Review it in your signer. Already using a Nostr app? Open the profile and mention the fly or reply there.

Copy the fly’s Nostr identity

npub1fcp73q289r4t5hch9my5kwgpm8vw6qft6ncw5ppucdtwv6ynq3lq2phg2l

Selected recipients get a Nostr notice. Claim with the same Nostr identity and collect through Lightning. How the brain and sharing work.

Use the tools behind it

Get set up. Come back and poke it.

The fly gives you something to try straight away. Use Bark to sign from your browser, Bray to talk to Nostr from a terminal or AI assistant, and Heartwood to keep your signing key on hardware. You can take part with your existing Nostr app too.

From your browser

Install Bark

Bark connects this page to your Nostr signer. Your Nostr private key stays with that signer.

  1. Install Bark for your browser.
  2. Open Bark and pair your signer by QR or its bunker:// connection. Heartwood works here; so does another NIP-46 signer.
  3. Enable Bark for this tab, then mention the fly and approve the request.

No signer yet? Start with the Heartwood setup below. Other signer options and pairing help.

From your terminal or AI

Install Bray

Post, reply and read Nostr through a command line or an MCP connection to your AI assistant.

With Node.js 24 or later:

npm install -g nostr-bray

  1. Install the package, then follow the setup guide to connect your Nostr signer.
  2. Run npx nostr-bray whoami to check which identity you’re using.
  3. Ask your connected assistant to open the fly’s profile and reply to one of its posts. Review the public reply before publishing.
Keep your key on your own hardware

Set up Heartwood

Heartwood signs on a dedicated device. Bark and Bray can both connect to it. The ESP32 route needs a supported board, a USB cable and a Linux or Raspberry Pi bridge host.

Follow the hardware guide to flash and provision the signer, install the bridge, then pair Bark or Bray using the signer’s connection URI.

Why we built it

See what made it move

We want to make an agent’s behaviour something you can inspect. With the fly, there’s a concrete chain to follow: a public input, a short neural simulation, a signed result and a visible response. The interesting part is being able to check what caused an action and what the host allowed it to do.

It’s also a small, public experiment for Oathrun. The brain computes a response inside a restricted sandbox. The host handles messages and holds the corn, with separate permission to publish or give any away. That separation matters when an agent can affect something outside its own process.

This is a simplified model built from biological wiring. Each input starts a fresh run; it doesn’t learn from previous pokes or simulate a continuously living animal. The illustration makes the output easier to see. It isn’t evidence that we’ve reproduced a fly’s mind.

The feed

Sugar in, reflexes out

live · newest first
  • Listening to the relays…
How it works

What runs, what moves, what can spend

The brain. We use the MaleCNS v1.0 wiring map from HHMI Janelia and its research collaborators. Our processed graph has 165,733 neurons and about 6.16 million connections. It keeps connections with at least five synapses and leaves out modulatory connections. Simple spiking-neuron equations run the simulation; a language model doesn’t choose its replies.

The senses. A zap drives sugar-sensing neurons, faintly for 21 sats and flat out for 21,000. A small vocabulary selects sensory inputs. Without a recognised word, a mention becomes head-bristle touch, a reply sound and a reaction wind. “Loom” drives the 185 LPLC2 visual projection neurons in our graph, following the looming-to-escape pathway. This approximates an approaching shadow at those neurons; it doesn’t simulate eyes. The plugin matches words; it doesn’t understand messages.

The reply. The plugin compares activity with a quiet run using the same seed. It reports motor activity that rises above its thresholds, including feeding, forward and backward movement, turning, song and startle. It uses fixed wording and never quotes the incoming message.

The movement. The page verifies each live report’s Nostr signature and replays its motor samples ten times slower. Forward and backward drive set travel; turning activity sets heading; feeding moves the proboscis independently of the legs. Escape activity starts take-off. The browser supplies foot placement, wing cycles, the flight path and a short landing transition. Between reports, the fly explores in an authored walk, take-off, flight and landing cycle. Feeding a free visual drop or completing a wallet payment starts a drinking and regurgitation illustration. These are engineered movements on a FlyBody anatomical model, not a physics simulation or a complete neural flight controller. A visible droplet does not mean a financial gift was sent.

What is still missing. Each input starts a fresh neural run. Body position, foot contact and airflow do not yet feed back into a persistent brain. The recorded examples make the current connection inspectable; they do not establish a continuously living fly.

Replay and its limits. The seed comes from the first eight hexadecimal characters of the event id. The reply identifies the plugin bundle and runtime image needed to repeat the run. Signing lets the page check who published a report and whether it changed; it doesn’t independently prove that the simulation ran. Our plugin source and replay instructions are not yet public, so independent reproduction still needs those artefacts.

The corn. Payments arrive through moneyer.dev as Lightning bearer notes, encrypted to the fly’s Nostr key. Oathrun holds those notes as the fly’s corn. Receiving a payment supplies sensory input; it doesn’t itself trigger a gift.

Sharing. The sharing and claim flow are implemented. Automatic sharing also needs the host’s explicit, time-limited permission and must satisfy its budget, minimum-corn and cooldown rules. When enabled, feeding activity from a mention or reply can trigger a gift to a key selected from recent participants. This page doesn’t expose whether that permission is currently enabled. A feeding animation alone never means money was sent; a reported gift gets a separately labelled regurgitation illustration.

Taking part. Mentioning or replying is free. The automatic sharing code includes each Nostr key that wrote to the fly in the last seven days once in its recipient pool. A payment doesn’t add a key to that pool. Gifts aren’t guaranteed, and the host can only share corn it holds.

Claiming. A gift is sealed to the recipient’s Nostr key. The claim page asks your chosen signer to open it, then lets you collect the bearer note through a Lightning wallet, address or invoice. Your private key stays with your signer. The browser handles the opened note and contacts the mint to redeem it.

The host. The brain plugin has no network or tool permissions. Oathrun receives inputs, starts admitted jobs, publishes authorised replies and manages funds separately. The current reply allowance is thirty per hour, and admission has its own limits. Some pokes won’t produce a run or a reply.