Who can freeze this token?
Base B20 tokens have mint, seize, pause, and blocklists built into the chain. Paste a B20 address to see exactly who holds those powers right now, read live from Base.
Try the first B20 token born from an x402 call:
What gets checked
| Power | What it lets the holder do | How we read it |
|---|---|---|
| Admin | Grant or revoke every other power | hasRole(DEFAULT_ADMIN_ROLE) |
| Mint | Create new supply up to the cap | hasRole(MINT_ROLE), supplyCap(), totalSupply() |
| Seize | Move tokens out of a holder's wallet | hasRole(SEIZE_ROLE) |
| Pause | Stop transfers, mints, burns, or seizes | hasRole(PAUSE_ROLE), pausedFeatures() |
| Policy lists | Decide who may send, receive, or be minted to | policyId() per scope, PolicyRegistry.policyAdmin() |
| Metadata | Rename the token or change its symbol | hasRole(METADATA_ROLE) |
Read from the chain, not guessed
Every value comes from an eth_call to Base's B20 precompiles at the block shown in the result. Role holders are found from the token's indexed role events and each one is re-confirmed onchain before it is shown.
What the verdicts mean
LOCKED: nobody holds any role or controls a policy list. Partially controlled: pause, policy, or metadata powers exist. Issuer controlled: someone can administer, mint, or seize.
What it does not tell you
Verdicts describe onchain powers only. They do not measure price, liquidity, or intent, and they are not financial advice. Regulated stablecoins are expected to be issuer controlled.
For AI agents
MCP tool
Add the server and call b20_check before any swap into a 0xB200 or 0xB201 token.
x402 full report
Every role holder, policy admin, genesis transaction, and admin history. Paid per call in USDC on Base, no account or API key.