B20 method and event signatures are part of the chain’s consensus surface. Existing selectors do not change, and new functionality ships by addition. Behavior can change at a hardfork boundary: two Denim entries below are breaking for some integrations.
Hardfork Ordinals
Denim (Upcoming), Ordinal 03
Cobalt, Ordinal 02
Beryl: Initial Release
Shipped with the Beryl upgrade.
Added
- The B20 standard as a native precompile: a superset of ERC-20 with full selector and behavior parity for
transfer,transferFrom,approve,allowance,balanceOf,totalSupply,name,symbol,decimals,Transfer, andApproval - Role-based access control with built-in roles, user-defined roles in the role graph, and
renounceLastAdminfor permanent admin-less operation - PolicyRegistry singleton precompile with
BLOCKLIST,ALLOWLIST,UNION, andINTERSECTpolicy types, two-step admin transfer, and theALWAYS_ALLOWandALWAYS_BLOCKbuilt-ins - Four policy scopes on every token, covering transfer sender, receiver, and executor, and mint receiver
- Memo variants of transfer, transferFrom, mint, and burn, emitting
Memoimmediately after the primary event - Granular pausing by
PausableFeature:TRANSFER,MINT, andBURN burnBlockedandBURN_BLOCKED_ROLEfor administrative removal of a blocked holder’s balance- Optional supply caps, with
type(uint128).maxas the uncapped sentinel and maximum supply - ERC-2612
permitwith an EIP-712 domain at version"1" - ERC-7572
contractURIandMETADATA_ROLE-gated name, symbol, and URI updates - B20Factory singleton precompile with deterministic, variant-encoding addresses and
initCallsbootstrap semantics - ActivationRegistry gating for state-changing PolicyRegistry calls
- The
ASSETvariant:OPERATOR_ROLE, WAD-precision UI multipliers with scheduled and instant updates, announcements,batchMint, and issuer-defined extra metadata - The
STABLECOINvariant: fixed 6 decimals and acurrency()code set once at creation
seizeWithMemo, the SEIZE pause feature, the two seize policy scopes, and the deprecation of burnBlocked shipped later with Cobalt. See the seize changelog entry.