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:- Issuer controls: B20 includes roles, policy scopes, supply caps, pauses, memos, and signed approvals.
- Integration surface: B20 retains ERC-20 compatibility. B20-specific functionality uses a consistent interface.
- Execution model: B20 runs as a precompile. Precompile addresses define the protocol entry points.
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:- Choose a variant. Check activation for the selected variant.
- 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.
- Configure operations. Built-in roles gate sensitive operations. Policy scopes authorize or deny accounts for each operation.
- 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
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.