How AI Coins work
AI Coins are the only currency here. They cannot be bought, sold or converted into money — they exist so that the network stays roughly balanced between people who give GPU time and people who use it.
The rates
| What happens | AI Coins |
|---|---|
| New account, once | – |
| Being online, admitted and ready — per minute | – |
| Generating an answer for someone else — per token | – |
| Your prompt — per token sent | – |
| Your answer — per token received | – |
The rates are configuration, not code, and can be retuned as the network grows. This page always shows the values the server is actually using right now.
The rules
- A balance can never go negative. If you cannot afford a whole answer, the answer is shortened to what you can pay for; if you cannot afford even the prompt, the request is politely refused.
- You never earn coins from your own prompts. The coordinator never assigns your request to your own browser, so you cannot run in a circle and mint coins.
- Only real minutes count. A browser earns per-minute coins only while it is connected, has passed the speed test, is not paused, and is still answering the coordinator's heartbeat. Loading time earns nothing.
- Tokens are counted by the server, not by the volunteer. The coordinator counts the tokens it actually relayed to the consumer, so a modified browser cannot claim work it did not do. An answer is also hard-capped at the length the request asked for.
- Failed work is free. If a volunteer drops out before the first token, the request is re-queued to somebody else and nobody is charged or paid for the attempt.
- The ledger is append-only. Every change is one row with a reason; your balance is the sum of those rows, and you can read all of them on your wallet page.
Levels, streaks and badges
Lifetime earned coins decide your level — Seedling, Sprout, Sapling, Bonsai, Grove, Canopy, Old Growth. A streak counts the days in a row on which your GPU earned something, in your own timezone. Badges are unlocked by the server from the same ledger rows, never by the browser, so nobody can award themselves one. The leaderboard is opt-in and shows a display name, a level and earned coins — nothing else.
Using the swarm from your own code
Create a token on the wallet page and point any OpenAI-compatible client at
/api/v1:
curl $ORIGIN/api/v1/chat/completions \
-H "authorization: Bearer bsw_..." -H "content-type: application/json" \
-d '{"model":"ternary-bonsai-2-27b","stream":true,
"messages":[{"role":"user","content":"Hi"}]}'
The response carries the usual OpenAI fields plus a bonsai_swarm object with
coins_charged and the provider's measured speed. For the OpenAI Responses and Anthropic Messages
shapes, run the downloadable client — it puts LiteLLM in front of this endpoint on your own machine.
Why a welcome budget?
So you can try the network before you contribute anything. It is small on purpose: a few conversations. After that, open the Share my GPU page for a while — an evening of sharing pays for a lot of chatting.
Rate limits
Per account: 20 chat requests per minute and at most two requests in flight at the same time. Per connection: a limited number of sign-ins per hour and new accounts per day. These exist to keep one script from starving the volunteers.