Skip to main content

What is B20?

B20 is Base’s native token standard for stablecoins, real-world assets (RWAs), and other fungible tokens. It retains ERC-20 compatibility, so wallets, exchanges, and apps can use B20 tokens through standard ERC-20 flows. Issuers can add B20 controls without requiring those integrations to use a new token interface. The B20 Factory establishes a token’s operational configuration. The factory applies the configuration atomically, so the token starts with the selected controls. The issuer supplies roles, policies, supply limits, pause controls, and metadata for that configuration. After creation, the token applies its configuration to each operation. Roles control privileged issuer actions. The token queries the PolicyRegistry for configured authorization checks. Holders can transfer and approve tokens. Apps and indexers continue to use standard ERC-20 calls and events.

Why B20?

Token issuers may need controls beyond ordinary transfers. Examples include mint permissions, transfer restrictions, operation pauses, and payment references. A standard ERC-20 requires issuers to implement these controls in a custom contract. B20 standardizes the controls that issuers configure for a token. The standard includes:

How B20 works

The diagram shows the B20 lifecycle. The issuer configures the token during creation. The token applies that configuration during later operations. Use the diagram to identify the component that controls each part of the lifecycle. In practice, the flow is:
  1. Choose a variant. Check activation for the selected variant.
  2. Create the token. The issuer calls the factory with creation parameters and bootstrap calls. Factory creation defines the call. Address derivation defines the token address.
  3. Configure operations. Built-in roles gate sensitive operations. Policy scopes authorize or deny accounts for each operation.
  4. Use the token. Holders and applications use ordinary ERC-20 methods. B20 methods can add a memo or perform an issuer operation.

What can I do with B20?

Issue and manage a token

Create a token. Set a supply cap. Assign roles for minting, pausing, seizure, and metadata. Manage roles.

Apply transfer rules

Connect allowlists, blocklists, or composite policies to transfer, mint, and seizure scopes. Scopes allow every account by default. Set policies.

Control token operations

Pause transfers, mints, burns, or seizures independently. Authorized operators can mint, burn, or seize balances. Review pauses and seizures.

Reconcile activity

Memo-enabled operations emit a bytes32 reference. The reference can identify an order or invoice. Review memo events.

Use signed approvals

Use ERC-2612 permit for signed approvals. Standard approve and allowance flows remain available.

Handle asset lifecycle events

Asset tokens support scaled UI balances, announcements, batch minting, and extra metadata. Review Asset features.

Choose the right variant

Every B20 token uses one of two variants. The issuer chooses the variant during creation. The choice determines the token’s decimals and additional methods. Use the table to select the variant for the token’s use case. This overview does not define method-level behavior. Read the B20 technical specification for methods, events, errors, and configuration rules. Read the generated interface reference when you need the full callable interface.

How can I get started?

Explore the issuer flow

The B20 demo runs issuer flows in the browser. Use the demo to explore token creation and issuer controls before you integrate B20. The demo does not require a wallet or setup.

The B20 demo at chain.base.org/demos/b20

Open the demo in a new tab.
Standard forge cannot simulate B20 precompile calls. B20 precompile addresses have no contract bytecode. Use Base’s Foundry build: base-forge, base-cast, and base-anvil. The tools register B20 precompiles in their EVM.

Availability

Next steps

Launch a B20 token

Create a token with one factory call.

Accept B20 payments

Integrate memo-tagged payments. Handle B20-specific reverts.

Read the B20 spec

Read the normative standard.

View constants

Find protocol constants and addresses.

Browse interfaces

Browse B20 and registry methods.

Review changes

Review standard changes by release.