> For the complete documentation index, see [llms.txt](https://docs.trybasket.live/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.trybasket.live/built-on-b20/b20-overview.md).

# B20 overview

This page explains the native Base token standard behind every basket token.

### What B20 is

B20 is Base's native token standard.

It went live on mainnet on June 25, 2026 as part of the Beryl upgrade.

It is an ERC-20 superset implemented as a native precompile.

It is not a normal user-deployed ERC-20 contract.

### Why Basket uses it

Basket issues each basket as a B20 `Asset` token.

That gives Basket native execution on Base with normal ERC-20 compatibility in wallets, DEXs, explorers, and indexers.

{% columns %}
{% column %}

#### Basket gets

* deterministic creation
* built-in roles
* memo support
  {% endcolumn %}

{% column %}

#### Integrators get

* ERC-20 selector parity
* standard transfer behavior
* predictable token addresses
  {% endcolumn %}
  {% endcolumns %}

### The Basket configuration

Basket tokens are created through the singleton B20 factory precompile at `0xB20f000000000000000000000000000000000000`.

The factory call is `createB20(variant, salt, params, initCalls)`.

Factory-created token addresses start with `0xB200`.

| Setting           | Basket choice                |
| ----------------- | ---------------------------- |
| Variant           | `Asset`                      |
| Supply cap        | Uncapped                     |
| Transfer policy   | Open by default              |
| Mint right holder | Basket pool                  |
| Burn right holder | Basket pool                  |
| Memo usage        | Mint and burn reconciliation |

### Roles and memos

At basket creation, `MINT_ROLE` and `BURN_ROLE` are granted to the basket's pool.

Managed baskets may also rely on `OPERATOR_ROLE` where applicable.

B20 memos are `bytes32` tags emitted on mint and burn events.

Basket uses them to classify issuance and redemption activity in the data layer.

### Why native issuance helps an index token

| Benefit                     | Why it matters for Basket                     |
| --------------------------- | --------------------------------------------- |
| Protocol-native token model | Better fit for a base-layer indexed asset     |
| ERC-20 parity               | Easier distribution and compatibility         |
| Built-in roles              | Cleaner issuance and redemption permissioning |
| Memo support                | Better reconciliation for supply events       |

{% hint style="warning" %}
B20 is new infrastructure.

Treat that newness as a real risk until it has more production history.
{% endhint %}


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.trybasket.live/built-on-b20/b20-overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
