fly.ai compute · buy compute
Choose what the fly senses. The network plays it into the full connectome, 166,700 neurons, over and over, and hands back what its muscles and escape neurons do. You pay in $FLYAI only for runs that finish, and of it goes to the miners.
No program yet. Start from the examples (pi, hash search, Mandelbrot tiles, TSP, WASI, a GPU shader) or the guide: Rust, C, Zig, Go or WGSL.
Jobs
Programs run in miners' browsers, sandboxed: no network, no files, a memory cap and your time limit. Anyone who takes a job can see the program and its input, so don't send secrets. Outputs are kept for 14 days.
The brain has random noise, like a real one. Each repeat runs the whole experiment again with different noise, so more repeats give steadier averages.
Miners pick orders at random, weighted by price. Paying more per run gets your runs picked more often.
—
Senses to drive
Sides
Strength is how hard the sense is driven. Gain scales every synapse, and tonic is a steady background drive for every neuron. Lists are comma separated. Each run is 15 simulated seconds: a rest, then the stimulus. A smaller budget or a time limit stops the order early, and what it didn't spend goes back to your balance.
Connect a wallet to see its orders.
Everything on this page is a plain JSON API at https://flyai-mine.fly.dev. Results come to you as miners settle them, three ways. Every row has a seq that only goes up, so keep the last one you handled.
1. Create and pay. Create the order for your wallet, then send one $FLYAI transfer of exactly budget_wei to pay_to and hand over the transaction hash.
curl -X POST https://flyai-mine.fly.dev/api/orders -H 'content-type: application/json' -d '{
"wallet": "0xYourWallet", "bid": "20", "budget": "255", "webhook": "https://your-server.com/flyai",
"spec": {"kind": "connectome-sweep", "channels": ["LPLC2", "none"], "sides": ["L", "R"],
"amounts": [0.2, 0.4], "gains": [3], "tonics": [0.14], "seeds": 3, "warm": 250}
}'
# → {"id": "…", "budget_wei": "…", "pay_to": "0x…", "webhook_secret": "…"}
curl -X POST https://flyai-mine.fly.dev/api/orders/ORDER_ID/pay -H 'content-type: application/json' -d '{"tx": "0xTransferHash"}'
2. Stream results live (server-sent events; a browser reconnects and resumes on its own):
const es = new EventSource("https://flyai-mine.fly.dev/api/orders/ORDER_ID/stream");
es.addEventListener("result", (e) => save(JSON.parse(e.data))); // one settled run
es.addEventListener("status", (e) => {
if (["done", "ended"].includes(JSON.parse(e.data).status)) es.close();
});
3. Or pull pages, asking again with after=next:
curl "https://flyai-mine.fly.dev/api/orders/ORDER_ID/results?after=0&limit=5000"
# → {"status": "live", "next": 1042, "more": false, "outputs": [...], "rows": [{"seq": 1031, "channel": "LPLC2", "base": [...], "stim": [...]}, ...]}
4. Or get a webhook. Batches of up to 500 rows are POSTed to your URL, with "final": true on the last call. They're retried until your server answers 2xx, and signed with X-Flyai-Signature: t=<ms>,v1=HMAC-SHA256(secret, "t.body"). The guide has receivers for Node and Python, paying with viem, and every field.