> ## Documentation Index
> Fetch the complete documentation index at: https://base-a060aa97-docs-add-b20-spec.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors & events index

> Reverse lookup B20 errors and events by selector or topic.

## Index

| Type  | Name                               | Selector / topic0                                                    | Interface             | Meaning                                                                                               |
| ----- | ---------------------------------- | -------------------------------------------------------------------- | --------------------- | ----------------------------------------------------------------------------------------------------- |
| error | `AccessControlBadConfirmation`     | `0x6697b232`                                                         | `IB20`                | The `callerConfirmation` argument to `renounceRole` was not `msg.sender`.                             |
| error | `AccessControlUnauthorizedAccount` | `0xe2517d3f`                                                         | `IB20`                | `account` does not hold `neededRole`.                                                                 |
| error | `AccountNotBlocked`                | `0x64a5cb46`                                                         | `IB20`                | The deprecated `burnBlocked` was called against a `from` that is currently authorized under           |
| error | `AccountNotSeizable`               | `0x91dbbc8d`                                                         | `IB20`                | `seizeWithMemo` was called against a `from` that is currently authorized under                        |
| event | `AllowlistUpdated`                 | `0x18c46532f90187ba11e436e21da087b684801d7f0787f2043f26f079c91e9ef0` | `IPolicyRegistry`     | One or more accounts had their ALLOWLIST membership set to `allowed` in a single batch.               |
| error | `AlreadyActivated`                 | `0x866b0041`                                                         | `IActivationRegistry` | Feature is already activated.                                                                         |
| event | `Announcement`                     | `0xccebf8218a62875909564adef86a6f4df81503cb617221e793357d62f8e813f7` | `IB20Asset`           | Emitted by `announce` to open an announcement bracket.                                                |
| error | `AnnouncementIdAlreadyUsed`        | `0xd10b3c9e`                                                         | `IB20Asset`           | `announce` was called with an `id` that has already been consumed.                                    |
| error | `AnnouncementInProgress`           | `0x5c5f0829`                                                         | `IB20Asset`           | An inner call dispatched by `announce` tried to re-invoke `announce`.                                 |
| event | `Approval`                         | `0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925` | `IB20`                | ERC-20 approval event. Emitted by `approve` and `permit`.                                             |
| event | `B20Created`                       | `0x86ee7a93da43b07286ea4c925a31ba17c41eb00c5ea396883bf32abfe5e73cfc` | `IB20Factory`         | Emitted once per `createB20` invocation, after the token's identity is sealed                         |
| error | `BatchSizeTooLarge`                | `0x083e2f67`                                                         | `IPolicyRegistry`     | A membership batch exceeded the registry limit.                                                       |
| event | `BlocklistUpdated`                 | `0x2ff63c102b1b9fd7f5d39f83039c5d6aaf50a414a4f2def2704e41be2628f1e3` | `IPolicyRegistry`     | One or more accounts had their BLOCKLIST membership set to `blocked` in a single batch.               |
| event | `BurnedBlocked`                    | `0x0b552e96653fd6842da37c477005d3b5c08a8c7d3631b1f43787b2dc9a1006a3` | `IB20`                | Emitted by the deprecated `burnBlocked` in addition to `Transfer(from, address(0), amount)`.          |
| error | `ChildPoliciesOutsideOfRange`      | `0xcbdee0f6`                                                         | `IPolicyRegistry`     | A composite policy was created or updated with a child-policy count outside the                       |
| event | `CompositePolicyUpdated`           | `0x4ff6adaab31b0df87aa7b8b7320c52b8b3b5eede3bf28a6baaaa8b8b7e1d6363` | `IPolicyRegistry`     | A composite policy's child set was set or replaced in full with `childPolicyIds`. Emitted             |
| error | `ContractPaused`                   | `0xf9df5ac9`                                                         | `IB20`                | The `PausableFeature` covering this operation is currently paused.                                    |
| event | `ContractURIUpdated`               | `0xa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962` | `IB20`                | Emitted by `updateContractURI`. Per ERC-7572, parameterless: integrators re-fetch `contractURI()`.    |
| error | `DelegateCallNotAllowed`           | `0x0d89438e`                                                         | `IActivationRegistry` | The precompile was invoked via `DELEGATECALL` or `CALLCODE`.                                          |
| error | `EffectiveAtInPast`                | `0x14119cf6`                                                         | `IB20Asset`           | `setUIMultiplier` was called with an `effectiveAt` that is not in the future                          |
| error | `EffectiveAtTooFar`                | `0x1ce214fa`                                                         | `IB20Asset`           | `setUIMultiplier` was called with an `effectiveAt` above `type(uint64).max`, the                      |
| event | `EIP712DomainChanged`              | `0x0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31` | `IB20`                | ERC-5267 domain-change signal. Emitted exactly once per successful `updateName` call,                 |
| error | `EmptyBatch`                       | `0xc2e5347d`                                                         | `IB20Asset`           | A batched function was called with empty arrays.                                                      |
| error | `EmptyFeatureSet`                  | `0x4861ff45`                                                         | `IB20`                | An empty array was passed to a function that requires at least one element.                           |
| event | `EndAnnouncement`                  | `0x96d64dafe2c790596430196b982ad1da3221cb3b0f4e6e2df77f2e4f71a90037` | `IB20Asset`           | Emitted by `announce` to close the bracket opened by the paired `Announcement` with the same `id`.    |
| error | `ExpiredSignature`                 | `0xbd2a913c`                                                         | `IB20`                | An EIP-2612 `permit` was submitted with a `deadline` strictly less than `block.timestamp`.            |
| event | `ExtraMetadataUpdated`             | `0xd7bb345be29e78d635203d40fe0567e7ef19d5cd5cc5fcd25f768b8063e82aa1` | `IB20Asset`           | Emitted by `updateExtraMetadata`. An empty `value` indicates removal.                                 |
| event | `FeatureActivated`                 | `0x8c7a0ecdbb8d96e867e43ec1aef80027976ee493c18bef399fa799ed19752451` | `IActivationRegistry` | Emitted when `feature` is activated.                                                                  |
| event | `FeatureDeactivated`               | `0x15bf65a782c3258c63268ba9d7aed710cf9f9315d3687d9a4632ccdad7926c84` | `IActivationRegistry` | Emitted when `feature` is deactivated.                                                                |
| error | `FeatureNotActivated`              | `0xb9b2a425`                                                         | `IActivationRegistry` | Feature is not activated.                                                                             |
| error | `IncompatiblePolicyType`           | `0xf1011ef5`                                                         | `IPolicyRegistry`     | The operation is incompatible with the policy's type.                                                 |
| error | `InitCallFailed`                   | `0x4eae0860`                                                         | `IB20Factory`         | One of the `initCalls` reverted. The factory bubbles the underlying revert reason                     |
| error | `InsufficientAllowance`            | `0x192b9e4e`                                                         | `IB20`                | `spender`'s allowance is less than `needed` for the requested `transferFrom`.                         |
| error | `InsufficientBalance`              | `0xdb42144d`                                                         | `IB20`                | `sender`'s balance is less than `needed` for the requested transfer or burn.                          |
| error | `InternalCallFailed`               | `0xb288a127`                                                         | `IB20Asset`           | An inner call dispatched by `announce` reverted with an ordinary revert; its reason is                |
| error | `InternalCallMalformed`            | `0x4e2f143e`                                                         | `IB20Asset`           | An inner call dispatched by `announce` was shorter than four bytes.                                   |
| error | `InvalidAmount`                    | `0x2c5211c6`                                                         | `IB20`                | An amount argument was zero where a non-zero value is required. Not used for ERC-20 amount arguments. |
| error | `InvalidApprover`                  | `0x8bc146c4`                                                         | `IB20`                | The approval's `owner` address is invalid (typically `address(0)`).                                   |
| error | `InvalidChildPolicy`               | `0x46508ef6`                                                         | `IPolicyRegistry`     | Composite policies are not simple policies. Child policies must be existing                           |
| error | `InvalidCurrency`                  | `0x997c1de8`                                                         | `IB20Factory`         | The stablecoin `currency` was non-empty but contained a non-`A`-`Z` byte.                             |
| error | `InvalidDecimals`                  | `0xca950391`                                                         | `IB20Factory`         | The asset `decimals` was outside the allowed inclusive range                                          |
| error | `InvalidMetadataKey`               | `0x86ea3abb`                                                         | `IB20Asset`           | `updateExtraMetadata` was called with an empty `key`.                                                 |
| error | `InvalidMultiplier`                | `0x6f12f3dc`                                                         | `IB20Asset`           | A multiplier setter (`setUIMultiplier` or `updateMultiplier`) was called with a                       |
| error | `InvalidReceiver`                  | `0x9cfea583`                                                         | `IB20`                | The transfer's destination address is invalid (typically `address(0)`).                               |
| error | `InvalidSender`                    | `0x4c14f64c`                                                         | `IB20`                | The transfer's source address is invalid (typically `address(0)`).                                    |
| error | `InvalidSigner`                    | `0x7ba5ffb5`                                                         | `IB20`                | ECDSA recovery on an EIP-2612 `permit` returned `signer`, which does not match the claimed `owner`.   |
| error | `InvalidSpender`                   | `0x4e15efda`                                                         | `IB20`                | The approval's `spender` address is invalid (typically `address(0)`).                                 |
| error | `InvalidSupplyCap`                 | `0x0a3780ce`                                                         | `IB20`                | The proposed supply cap is outside the permitted range: below the current                             |
| error | `InvalidVariant`                   | `0xf10e8e43`                                                         | `IB20Factory`         | `variant` is not a recognized `B20Variant`.                                                           |
| error | `LastAdminCannotRenounce`          | `0x361513e7`                                                         | `IB20`                | `renounceRole(DEFAULT_ADMIN_ROLE, ...)` was called by the sole remaining admin.                       |
| event | `LastAdminRenounced`               | `0xe8d3a9872e7ca325571ff1e4c51ddd69090a0345240cc605ccde365ec867cc67` | `IB20`                | Emitted by `renounceLastAdmin` in addition to the standard                                            |
| error | `LengthMismatch`                   | `0xab8b67c6`                                                         | `IB20Asset`           | A batched function was called with parallel arrays of differing lengths.                              |
| event | `Memo`                             | `0x6989f5818dcfd11f8cd53b27c94cec33dae1589735f03e639cba54553a1825e8` | `IB20`                | Emitted by `transferWithMemo`, `transferFromWithMemo`, `mintWithMemo`, and `burnWithMemo`             |
| error | `MissingRequiredField`             | `0x4a43ae87`                                                         | `IB20Factory`         | A required string argument was the empty string.                                                      |
| event | `MultiplierUpdateCancelled`        | `0xf8929975f3e67bbd1e5ec70d4cceaa7cce7ea0e811720f29c96cf1724de09397` | `IB20Asset`           | A scheduled multiplier update was cancelled. Emitted by `cancelScheduledMultiplier`,                  |
| event | `NameUpdated`                      | `0x74321da206c1b9fa34367f7ece59ca49371dcd13820b9a5c3767ae1ecceed51a` | `IB20`                | Emitted by `updateName`. Carries the new name string.                                                 |
| error | `NonPayable`                       | `0x6fb1b0e9`                                                         | `IB20`                | ETH was attached to a call targeting a nonpayable token selector.                                     |
| error | `NonPayable`                       | `0x6fb1b0e9`                                                         | `IB20Factory`         | ETH was attached to a call targeting a nonpayable factory selector.                                   |
| error | `NonPayable`                       | `0x6fb1b0e9`                                                         | `IPolicyRegistry`     | ETH was attached to a call targeting a nonpayable policy registry selector.                           |
| error | `NoPendingAdmin`                   | `0xb4539afa`                                                         | `IPolicyRegistry`     | `finalizeUpdateAdmin` was called with no pending admin staged.                                        |
| error | `NoScheduledMultiplier`            | `0x002e806f`                                                         | `IB20Asset`           | `cancelScheduledMultiplier` was called when there is no live pending update                           |
| error | `NotSoleAdmin`                     | `0x2a98e73b`                                                         | `IB20`                | `renounceLastAdmin()` was called when other accounts also hold `DEFAULT_ADMIN_ROLE`.                  |
| event | `Paused`                           | `0x43e072977b8112813d7c2aa0b63d3c121c1fe3e714e6d2eacb5735fe4027e976` | `IB20`                | Emitted by `pause`. `features` is the argument to the call (not the resulting paused state).          |
| event | `PolicyAdminStaged`                | `0xdbf3b34a4c956c56ca05cd4b8f9293a4347ad61994445a4b89817d4a19561136` | `IPolicyRegistry`     | A new admin was staged. `pendingAdmin == address(0)` clears a prior nomination.                       |
| event | `PolicyAdminUpdated`               | `0x98925cfb1bc09c5b43dd0dd56d3d95aa04fb3300927580cc588c3f5dd58c15e1` | `IPolicyRegistry`     | The active admin changed. `newAdmin == address(0)` indicates renunciation;                            |
| event | `PolicyCreated`                    | `0xdc870ce85be577234b8548f42b93f84bbff6d0c1f38ee725c809c49932a13885` | `IPolicyRegistry`     | A new policy was created.                                                                             |
| error | `PolicyForbids`                    | `0xa43fec12`                                                         | `IB20`                | A policy slot denied the operation.                                                                   |
| error | `PolicyNotFound`                   | `0xcccad523`                                                         | `IB20`                | The provided policy ID does not exist in the policy registry.                                         |
| error | `PolicyNotFound`                   | `0x720caa4f`                                                         | `IPolicyRegistry`     | The referenced policy ID does not exist.                                                              |
| event | `PolicyUpdated`                    | `0x8b4790f7ff717fc8f60f07ae099e47ef318dc04b37ae98056b50a22b79056626` | `IB20`                | Emitted by `updatePolicy` when a token's policy slot is changed. Initial slot assignment at           |
| event | `RoleAdminChanged`                 | `0xbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff` | `IB20`                | Emitted by `setRoleAdmin` when the admin role for `role` changes.                                     |
| event | `RoleGranted`                      | `0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d` | `IB20`                | Emitted when `account` is granted `role`. `sender` is the originating caller.                         |
| event | `RoleRevoked`                      | `0xf6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b` | `IB20`                | Emitted when `role` is revoked from `account`. `sender` is the originating caller                     |
| error | `ScheduleOverlap`                  | `0x91a52665`                                                         | `IB20Asset`           | `setUIMultiplier` was called while a live pending update already exists                               |
| event | `Seized`                           | `0xa9aec5d8b86e2fa2fd6ac3af62f2622e3dfdab1967d4cbbb56a5df7d74cb887c` | `IB20`                | Emitted by `seizeWithMemo` in addition to `Transfer(from, to, amount)` (and the                       |
| error | `StaticCallNotAllowed`             | `0xbeaba5b7`                                                         | `IActivationRegistry` | A state-mutating entry point was invoked from a `STATICCALL` frame.                                   |
| error | `SupplyCapExceeded`                | `0x4b344b11`                                                         | `IB20`                | The mint would push `totalSupply` past the configured cap.                                            |
| event | `SupplyCapUpdated`                 | `0x6d14f44808ce024f263432bc38d019a9951fbe674e9898b54844dbc8dc09c23a` | `IB20`                | Emitted by `updateSupplyCap`.                                                                         |
| event | `SymbolUpdated`                    | `0x64e8b5c6dcea43dd79766bb3b8af7c45968d12b68c960cf2da23856f34d598d4` | `IB20`                | Emitted by `updateSymbol`. Carries the new symbol string.                                             |
| error | `TokenAlreadyExists`               | `0x15ef3a57`                                                         | `IB20Factory`         | A token already exists at the deterministic address derived from                                      |
| event | `Transfer`                         | `0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef` | `IB20`                | ERC-20 transfer event. Emitted on every successful transfer (including memo'd variants),              |
| error | `Unauthorized`                     | `0x8e4a23d6`                                                         | `IActivationRegistry` | Caller is not the activation admin.                                                                   |
| error | `Unauthorized`                     | `0x82b42900`                                                         | `IB20`                | Caller failed a positional authorization check that is not expressible as "missing role X".           |
| error | `Unauthorized`                     | `0x82b42900`                                                         | `IPolicyRegistry`     | Caller is not the admin required by the attempted operation.                                          |
| event | `Unpaused`                         | `0xdc6281474ea3dea2a856e225c7ba3edf427de9164495817c4d49a595e683fed4` | `IB20`                | Emitted by `unpause`. `features` is the argument to the call (not the resulting paused state).        |
| error | `UnsupportedPolicyType`            | `0xcdd98a4a`                                                         | `IB20`                | `policyScope` is not a slot this token (or its variant) supports.                                     |
| error | `UnsupportedVersion`               | `0x6f3c1955`                                                         | `IB20Factory`         | The leading `version` byte in `params` does not match any known encoding for the requested variant.   |
| error | `ZeroAddress`                      | `0xd92e233d`                                                         | `IPolicyRegistry`     | A required address argument was the zero address.                                                     |
