B20
Operator guide

Use B20 features without guessing.

This guide is for token operators using the frontend. It covers the B20 controls exposed by the app, what roles they need, and what to verify before signing. Deployment notes live in the repository docs, not here.

Inspect first

Paste a token address, confirm the chain, and review the feature badges before preparing any write.

Check authority

Open Roles to see whether the connected wallet holds the role needed for the action you want to run.

Simulate before signing

Every write previews the target, function, and arguments, then simulates the call before the wallet prompt.

Verify after confirmation

Use the transaction history and explorer link to confirm what changed on-chain.

Dashboard tabs

Overview

Identity, variant, decimals, supply, cap, pause status, balance, and detected B20 support.

Actions

Mint, burn, burnBlocked, pause, supply cap, metadata, and Asset multiplier panels. Unsupported calls are hidden.

Roles

Role matrix plus grant, revoke, and renounce flows for access-control tokens.

Policies

Read and update transfer policy ids for sender, recipient, and operator scopes, then call burnBlocked when the token supports it.

Transactions

Browser-local status log for submitted transactions and explorer links.

Diagnostics

Raw reads and interface detection for debugging nonstandard or newly created tokens.

B20 feature reference

Create

Deployer wallet

Deploy Asset or Stablecoin variants through the B20Factory precompile. The form can set the initial admin, optional initial supply, optional supply cap, deterministic salt, and advanced role holders in one deployment transaction.

Mint

MINT_ROLE

Creates new supply for a recipient. If the token supports memos, the mint panel can use the memo variant. The app blocks malformed amounts and warns when the connected wallet does not appear to hold the role.

Burn

BURN_ROLE

Burns tokens from the connected wallet. If the token supports memos, the burn panel can use the memo variant.

burnBlocked

BURN_BLOCKED_ROLE

Calls burnBlocked(from, amount) for the account selected in the form.

Pause / unpause

PAUSE_ROLE / UNPAUSE_ROLE

Pauses or restores TRANSFER, MINT, or BURN independently. Treat transfer pause as a critical operational action because it affects every holder.

Supply cap

DEFAULT_ADMIN_ROLE

Updates the maximum supply. The app treats the max uint128 sentinel as uncapped and prevents setting a cap below current total supply.

Metadata

METADATA_ROLE

Updates token display fields such as name, symbol, contract URI, and extra metadata when the token exposes those B20 metadata methods.

Transfer policies

DEFAULT_ADMIN_ROLE

Stores policy ids on the token. Policy id 0 means ALWAYS_ALLOW; nonzero ids must already mean what you expect in the PolicyRegistry before you apply them.

Asset multiplier

OPERATOR_ROLE

Updates the Asset variant rebase multiplier. This changes displayed balances across holders, so the app treats it as critical.

Role meanings

DEFAULT_ADMIN_ROLE

Grant and revoke roles, update policy ids, and update supply cap.

MINT_ROLE

Mint new tokens, including memo mints when supported.

BURN_ROLE

Burn the connected wallet balance.

BURN_BLOCKED_ROLE

Run burnBlocked(from, amount) for blocked accounts.

PAUSE_ROLE

Pause transfer, mint, or burn features.

UNPAUSE_ROLE

Restore paused transfer, mint, or burn features.

METADATA_ROLE

Update token metadata fields.

OPERATOR_ROLE

Run Asset-operator flows such as multiplier updates and announcements.

Execution notes

Critical actions require an explicit confirmation checkbox, including admin role changes, transfer pause, supply expansion, multiplier updates, and burnBlocked.
Role reads are advisory. If a role check fails or is unknown, the app warns you but the chain is still the final authority.
Confirm policy ids in the PolicyRegistry before applying them. Applying the wrong allowlist or blocklist id can freeze normal transfers.