> For the complete documentation index, see [llms.txt](https://www.aevo.xyz/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.aevo.xyz/docs/aevo-products/aevo-builder-codes/for-builders.md).

# For Builders

Earn a fee on the trades your users make on Aevo.

## 1. Register your builder

1. Connect the account you want to receive fees with at [app.aevo.xyz](https://app.aevo.xyz). Use a dedicated account, because the fee account can't be changed later.
2. Make sure it holds at least the minimum USDC balance (currently 100 USDC).
3. Go to **Settings → Builders → Builder Dashboard**, enter your builder name and select **Register**.

You get a `builder_id` (for example `builder_0123456789abcdef`) straight away. You can also register through the API: see [Become a builder](/docs/api-reference/builder-codes/become-a-builder.md).

## 2. Get your users' approval

Each user approves your builder once, with the maximum fee you may charge them. In a web app, the smoothest way is to have the user sign the approval **inside your app**: one wallet prompt, no Aevo page and no Aevo API key needed. See [User approval](/docs/api-reference/builder-codes/user-approval.md#option-1-sign-in-your-app).

Or send them to the approval link (copy it from your Builder Dashboard):

```
https://app.aevo.xyz/builder/approve?builder_id=<builder_id>&max_fee_rate=0.0005
```

`0.0005` is 5 bps. The user reviews your builder's name and the maximum fee in the Aevo app and signs with their wallet. See [User approval](/docs/api-reference/builder-codes/user-approval.md) to build approval into your own app instead.

## 3. Attach your builder to orders

Add `builder_id` and `builder_fee_rate` to the orders your app places for a user, and include both in the order signature. You choose the rate per order, at or below the user's approved maximum and Aevo's protocol cap. See [Placing orders](/docs/api-reference/builder-codes/placing-orders.md).

## 4. Track your earnings

Open **Settings → Builders → Builder Dashboard** with your fee account to see:

* trading volume, fees earned, active, new and returning traders, and number of fills, compared with the previous period;
* maker and taker volume;
* daily volume and fee charts;
* per-market and per-trader breakdowns, and recent fills;
* a **Download CSV** export of every attributed fill;
* a lookup to check whether a given user has approved you.

The same data is available through the [Reporting API](/docs/api-reference/builder-codes/reporting-api.md). Use a read-only API key on your fee account for dashboards and accounting.

## Fees and limits

* **Perpetuals:** `builder fee = fee rate × price × contracts`.
* **Options:** `builder fee = min(fee rate × index price × contracts, premium cap × premium × contracts)`.
* Options fees are based on index notional and capped at a share of the premium, so they work differently from perpetuals. See [Perpetuals vs Options Fees](/docs/aevo-products/aevo-builder-codes/perps-vs-options-fees.md).
* **Maximum builder fee:** 5 bps on perpetuals; 3 bps of index notional on options, never more than 5% of the premium. Anything higher is rejected. A user can approve at most 5 bps.
* The live caps are also published at [`GET /builder-config`](/docs/api-reference/urls/public-api/getbuilderconfig.md).
* Fees are credited to your fee account in USDC on each fill. There is no separate payout.

## Good practice

* **Be clear with users** about the fee you charge and what your app does on their behalf.
* **Check the protocol caps** at startup rather than hardcoding them.
* **Test on testnet first** ([testnet.aevo.xyz](https://testnet.aevo.xyz)). See the [testnet guide](/docs/api-reference/builder-codes/testnet-and-reconciliation.md).

Aevo may suspend builders that mislead users or abuse the program. A suspended builder can't charge new fees.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://www.aevo.xyz/docs/aevo-products/aevo-builder-codes/for-builders.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
