Skip to main content

When to use B20

  • You need compliance, reconciliation, or corporate-action machinery. It ships as part of the standard, so you don’t build and audit a custom contract.
  • Your integrators matter. Exchanges, wallets, and indexers wire up one surface that behaves the same across every B20 token.
  • Cost matters. B20 runs as a native precompile: cheaper and faster than a contract token.
B20 is a superset of ERC-20: every ERC-20 call works unchanged, so there’s no compatibility trade-off in choosing it.

A compliance order arrives

A court order targets one account. Freeze it so it can’t send, then seize the balance with one call. Seizure only works on an account that is already frozen. Every other holder is untouched and the token keeps trading. See transfer policies and burn in the spec.

A customer pays an invoice

Your customer pays to one address. The transfer carries the invoice reference, so payment and order ID land in the same transaction. Reconciliation becomes a log query instead of a deposit address for every customer. To build this, see Accept B20 payments.

A new user approves without gas

A new user shouldn’t have to buy ETH first. With permit, they sign an approval offchain and your platform relays it. They start transacting with zero gas, and nonces stop signature replay. See permit in the spec.

The stock splits

A 2-for-1 split is one call. Every balance doubles without a migration or a new contract. Dividends run inside a public announcement window, so the disclosure lives onchain next to the action. The token also stores identifiers like a CUSIP. See the Asset variant in the spec.

Build with it

Launch a B20 token

Deploy a fully configured token in one factory call.

Accept B20 payments

Integration code for memo-tagged payments and B20-specific reverts.

B20 native token standard

Every method, event, role, and policy in the standard.

Beryl overview

The upgrade that introduces B20 and native token features.