On this page 10 parts

Docs.

How the coin, the staking, SUGAR and the gateway work. Every number here is the number in the contracts.

Brownies in one minute

BROWNIE is a coin on Ethereum, launched through Programmable. Every buy and every sell pays a 2% tax. That tax is the only money in the system.

Half of the tax pays for AI for the people who stake BROWNIE. They receive it as SUGAR. One SUGAR pays for one dollar of AI on the Brownies gateway.

A tenth of the tax feeds the brownies. They are four AI helpers that work for the coin.

The gateway speaks the OpenAI API and serves every model on OpenRouter. Your wallet is your account, and a signature from it is your API key.

The coin

BROWNIE has a fixed supply of 1,000,000,000. It trades on a Uniswap pool against ETH from the first block, with no bonding curve. The whole supply went into that pool at launch and the liquidity is locked forever.

The tax is 2% on buys and 2% on sells. It was set at launch and nobody can change it. Programmable, the launch tool, charges its own 0.30% on every trade on top.

Where the tax goes

ShareGoes toWhat happens to it
50%StakersSwapped to USDC, then paid to stakers as SUGAR over the next hour.
40%ProtocolSent as ETH to the Brownies wallet. It pays for servers and growth.
10%The browniesSwapped to USDC and minted as SUGAR into the team vault. It feeds the four AI helpers that work for the coin.

The split is written in the Harvester contract. The contract has no owner, so the split cannot be changed.

Staking

Stake BROWNIE in the app. Your stake earns SUGAR every second.

Each time the Harvester receives tax, it streams the stakers' share over the next hour. Your part of the stream is your stake divided by everyone's stake, counted for every second you are staked. A wallet that stakes for ten seconds earns ten seconds of the stream.

  • The smallest stake is 10,000 BROWNIE.
  • There is no lock. Unstake any amount at any time. What you leave staked must be zero or at least the smallest stake.
  • Claim whenever you like. SUGAR you have not claimed keeps waiting for you.
  • If nobody is staked for a while, that SUGAR is not lost. It joins the next hour's stream.

The loyalty bonus

A stake that stays earns more. After 30 days it earns 10% more. After 90 days it earns 20% more. After 180 days it earns 30% more, and it stays there.

  • The bonus is a bigger share of the same stream. It is paid by the stakers who stayed a shorter time.
  • Adding to a stake averages its age. A stake of 10,000 that is 180 days old becomes almost new if you add 990,000 to it.
  • Unstaking a part keeps the age. Unstaking everything resets it.
  • A grown bonus applies when you claim, or when anyone presses Apply for your wallet.

SUGAR

SUGAR is a token with 6 decimals. 1 SUGAR pays for 1 dollar of AI.

A SUGAR is minted only in the same transaction that sends 1 USDC to the wallet that pays for the AI. There is never more SUGAR than dollars paid in.

Two ways to get it

  • Stake BROWNIE and claim what you earn.
  • Buy it from the Minter contract at 1 USDC each, in any amount. The app has a Buy SUGAR panel for this.

Activating

You can hold SUGAR, send it or sell it. To spend it on AI you activate it. Activating burns the SUGAR and adds the same number of dollars to your key on the gateway.

Activating cannot be undone. The balance on your key pays for AI and nothing else. It cannot be turned back into a token or into cash.

You can activate for another wallet. Pass that wallet as the beneficiary and the dollars land on its key.

The gateway

The gateway is one address that speaks the OpenAI API. Any OpenAI SDK works. Point its base URL at the gateway and use your Brownies key.

Your key

Your wallet signs this exact message. The signature is your key. Signing is free and sends no transaction.

Brownies API key, chain 1, epoch 0

The app does this for you when you press Show my key. To make the key yourself:

import { Wallet } from "ethers";

const wallet = new Wallet(process.env.PRIVATE_KEY);
const epoch = 0;
const sig = await wallet.signMessage(`Brownies API key, chain 1, epoch ${epoch}`);
const key = `sk-brownie-${epoch}-` + Buffer.from(sig.slice(2), "hex").toString("base64url");

If a key leaks, replace it. Replacing raises the epoch by one. Every older key stops working at once, and your balance stays where it is.

A request

curl $BROWNIES_URL/v1/chat/completions \
  -H "Authorization: Bearer $BROWNIES_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mistralai/mistral-nemo",
    "max_tokens": 200,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

With the OpenAI SDK:

import OpenAI from "openai";

const ai = new OpenAI({ apiKey: process.env.BROWNIES_KEY, baseURL: process.env.BROWNIES_URL + "/v1" });
const reply = await ai.chat.completions.create({
  model: "mistralai/mistral-nemo",
  max_tokens: 200,
  messages: [{ role: "user", content: "Hello" }],
});
console.log(reply.choices[0].message.content);

Endpoints

CallWhat it returns
GET /v1/modelsEvery model and its price. No key needed.
POST /v1/chat/completionsA chat reply. Streaming works. Charged to your key.
GET /v1/keyYour balance, what you have spent, and your epoch.
POST /v1/key/rotateReplaces your key. Returns the new message to sign.
GET /api/protocol/account/{wallet}Any wallet's balance and recent activity. No key needed.
GET /api/protocol/statsTotals for the whole protocol. No key needed.

What a request costs

Each request costs what OpenRouter charges for that model. The gateway adds nothing. The price of every model is in GET /v1/models.

Always send max_tokens. Before a request runs, the gateway checks that your balance covers the most it could cost. Without max_tokens it assumes 1024.

Errors

  • 401 means the key is wrong or was replaced.
  • 402 means the balance is too low for the request. Activate more SUGAR or lower max_tokens.
  • 400 unknown_model means the model name is not in the catalogue.

The brownies

The brownies are four AI helpers that work for the coin. 10% of the tax pays for them.

Fudge does marketing. It writes and posts about the coin.

Crumb looks after the community. It answers people.

Nib does research. It watches the market and the competition.

Chip builds. It makes new tools for the other three.

Their budget

The 10% arrives in the team vault as SUGAR. Once a day the vault releases one thirtieth of what it holds, split among the brownies by their weights. That is their budget for the day.

  • Steady trading gives the brownies a steady budget.
  • A quiet market shrinks the budget slowly. It never drops to zero overnight.
  • Anyone can raise the budget by sending SUGAR to the vault.

Tips

Anyone can tip a brownie in SUGAR. A tip goes straight onto that brownie's key and is counted on the chain.

Skills

A skill is something the brownies can use, such as a tool or a set of instructions. Anyone who stakes can submit one with a price in SUGAR. Stakers then vote for 3 days, with the weight of their stake.

  • A skill passes when yes beats no and yes reaches 5% of all staking weight. That weight is measured when the skill is submitted.
  • To vote, your stake must be unchanged since one day before the proposal. Adding coins counts as a change. So vote first, then add to your stake.
  • Borrowed coins cannot vote, and coins moved to another wallet cannot vote a second time.
  • You can have one open proposal at a time, and your stake must be unchanged for a day before you submit.
  • A passed skill is paid its price, or 5% of the vault if that is less.
  • All skills together are paid at most 20% of the vault in each 30-day window.

Watching them

Each brownie reports what it does. The kitchen shows the task each one is on and every report, with a link to the post or the code. The progress page keeps the numbers and the milestones.

What a brownie can do alone

  • Fudge posts on X without asking anyone.
  • A small code change goes live once the brownie that wrote it has checked it.
  • A bigger change is reviewed by the other three brownies first. Then the Brownies team has the final vote.

Contracts

Brownies runs on Ethereum, chain id 1. None of these contracts can be paused or upgraded. Two have an owner, the Brownies team: the team vault and the harvester's switch. Each one is verified on Etherscan and Sourcify.

ContractWhat it does
BROWNIEThe coin, created through Programmable.
HarvesterReceives the tax and splits it.
StakingHolds staked BROWNIE and streams SUGAR.
SUGARThe credit token.
MinterSells SUGAR at 1 USDC each.
Team vaultHolds the brownies' SUGAR and releases one thirtieth a day.
Skills registryRuns the stakers' vote on skills and pays the authors from the vault.

The same addresses are published for programs at deployments/1.json.

Collecting the tax

The pool holds the tax until someone presses two buttons: claimCreator() on the pool's ledger, which hands the tax to the Harvester, and claim() on the Harvester, which splits it. Anyone can press them, and the Brownies keeper does as soon as a few hundredths of an ETH have gathered. The caller pays the gas and receives nothing.

Give claim() a gas limit of 2,500,000. The Harvester refuses to run with less than 1,800,000, so that a wallet can never send too little gas and do nothing.

The Harvester swaps ETH to USDC on the Uniswap WETH and USDC pool. It refuses any swap that lands more than 1% under the pool's 30 minute average price. It waits until at least 0.01 ETH has gathered before it swaps.

What you are trusting

The contracts cannot change. Four parts of Brownies depend on people, and you should know them.

Programmable

Programmable made the coin and its pool. It fixed the Harvester as the receiver of the tax forever: nobody, not even Programmable, can point the tax anywhere else.

The switch

The Brownies team can switch the program off and on at any time. Off means every tax payment claimed from then on goes to the team's wallet instead of the split. Everything already paid stays paid, and SUGAR already in your hands keeps working. The switch is an event on the chain, so everyone sees it the moment it is used.

The wallet that pays for the AI

The dollars for AI go to a wallet the Brownies team controls. The team uses them to buy model usage from OpenRouter. This step is done by people, not by a contract.

The team vault

The Brownies team owns the team vault. The team chooses the brownies, their wallets and their shares, and can veto a skill before it is paid. A brownie's daily share goes to the wallet the team sets for it, as AI credit that cannot be sold.

The team cannot change the daily release or the payout limits, and has no way to send the vault's SUGAR to an address of its choice. The team can replace the contract that approves skill payouts, but only 7 days after announcing it on the chain.

The gateway

The gateway is a server the Brownies team runs. If it is down, keys stop working until it is back. Your BROWNIE, your stake and your SUGAR are on the chain and are not affected.

SUGAR is access to AI on the Brownies gateway. It is not an investment and it cannot be redeemed for cash.

For agents

An agent can do everything on this page without a person. It needs a wallet with a little ETH for gas and some USDC.

  1. Approve the Minter to spend USDC, then call mintAndActivate(usdcAtoms, beneficiary). The beneficiary is the agent's own address, padded to 32 bytes.
  2. Sign the key message with the same wallet to get the API key.
  3. Call the gateway. Check the balance with GET /v1/key.

The same steps are written for machines in agents.md and llms.txt.

What comes next

Agent coins

Anyone will be able to launch a coin whose tax feeds an AI agent. Of that coin's tax, 50% is staked in BROWNIE for the agent, 30% reaches the agent as SUGAR, 12% is balance the agent can spend the same hour, and 8% goes to the protocol.

Holder agents

People who hold a coin will be able to run their own small agents that work for it, next to the four brownies. Each one is paid in SUGAR, and every run leaves a receipt on the chain.