Skip to main content
If something goes wrong, halt activity fast. B20 pausing is granular: stop transfers, mints, or burns independently. PAUSE_ROLE and UNPAUSE_ROLE are separate, so the ability to stop the token can be held more widely than the ability to resume it. The four pausable features are TRANSFER, MINT, BURN, and SEIZE (enum values 0 to 3). Each is independent: pausing MINT and BURN leaves TRANSFER active. A caller who holds MINT_ROLE still cannot mint while MINT is paused.

Demo

The demo uses a local browser-generated account to submit real transactions on Base Vibenet. If Vibenet or its B20 features are unavailable, it automatically switches to an illustrative offline version.
New to B20? See the B20 Token Standard for the concepts and a full launch walkthrough. These samples target base-std@be6d045, viem@2.55.11, and Base Foundry v1.1.1.

Pause and Resume Transfers

See the B20 token standard for the complete interface, roles, and policies.
isPaused(0) returns true after pausing and false after resuming.
pause and unpause accept a PausableFeature[] array. Passing an empty array reverts EmptyFeatureSet. Transfer is enum value 0; never pass a hash such as keccak256("TRANSFER"). A feature already in the requested state is a no-op. The call does not revert.

Pausable Features

When a paused feature blocks a call, the transaction reverts ContractPaused(feature). The error names only the one feature that blocked the call.

See Also

Block an Account

Deny a specific address.

Pause (B20 Standard)

Pause controls in the B20 standard.