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

# IB20Asset reference

> Generated B20 reference for IB20Asset functions, events, and errors.

## Functions

| Function                                                                                                                                 | Selector     | Summary                                                                               |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------- |
| [`OPERATOR_ROLE`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/OPERATOR_ROLE)                       | `0xf5b541a6` | Required to call `announce`, `updateUIMultiplier`, `cancelUIMultiplierUpdate`, and    |
| [`WAD_PRECISION`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/WAD_PRECISION)                       | `0x664808a8` | Fixed-point precision used to scale `multiplier`. Equal to `1e18`.                    |
| [`MAX_UI_MULTIPLIER`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/MAX_UI_MULTIPLIER)               | `0x785c0cf0` | Maximum multiplier accepted by the setter functions.                                  |
| [`announce`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/announce)                                 | `0x595135dd` | Posts a holder-impacting announcement and atomically dispatches each entry in         |
| [`isAnnouncementIdUsed`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/isAnnouncementIdUsed)         | `0xc0da474e` | Whether `id` has previously been consumed by `announce`.                              |
| [`multiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/multiplier)                             | `0x1b3ed722` | The current multiplier, scaled to `WAD_PRECISION`. Holder balances are stored         |
| [`toScaledBalance`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toScaledBalance)                   | `0x04f04c99` | Converts a raw balance to its scaled view: `rawBalance * multiplier / WAD_PRECISION`. |
| [`toRawBalance`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toRawBalance)                         | `0x0ca06c44` | Converts a scaled balance back to its raw representation:                             |
| [`scaledBalanceOf`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/scaledBalanceOf)                   | `0x1da24f3e` | Convenience for `toUIAmount(balanceOf(account))`.                                     |
| [`updateUIMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateUIMultiplier)             | `0x628e600f` | Schedules a UI-multiplier update to take effect at `effectiveAt`.                     |
| [`cancelUIMultiplierUpdate`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/cancelUIMultiplierUpdate) | `0x2c97a0f0` | Cancels the single live pending update, restoring the no-pending state.               |
| [`updateMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateMultiplier)                 | `0x5ffe6146` | Instant failsafe / emergency override — sets the current multiplier immediately and   |
| [`batchMint`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/batchMint)                               | `0x68573107` | Mints `amounts[i]` to `recipients[i]` in one call. All-or-nothing: any element        |
| [`extraMetadata`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/extraMetadata)                       | `0x4ddf9da0` | The value of the named metadata entry, or the empty string if not set. A              |
| [`updateExtraMetadata`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/updateExtraMetadata)           | `0xb2851ef5` | Sets, updates, or removes an extra-metadata entry. An empty `value` removes the       |
| [`uiMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/uiMultiplier)                         | `0xa60bf13d` | Returns the current ERC-8056 UI multiplier.                                           |
| [`newUIMultiplier`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/newUIMultiplier)                   | `0xdc767007` | Returns the pending UI multiplier.                                                    |
| [`effectiveAt`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/effectiveAt)                           | `0x97a4064f` | Returns the effective-at timestamp for the pending multiplier.                        |
| [`balanceOfUI`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/balanceOfUI)                           | `0x437a9958` | Returns an account's UI-adjusted balance.                                             |
| [`totalSupplyUI`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/totalSupplyUI)                       | `0x9bea6429` | Returns the UI-adjusted total supply.                                                 |
| [`toUIAmount`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/toUIAmount)                             | `0x3248d4ff` | Converts a raw amount to its UI representation.                                       |
| [`fromUIAmount`](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20Asset/fromUIAmount)                         | `0x65cd9b3c` | Converts a UI amount to its raw representation.                                       |

## Events

| Event                         | Topic0                                                               | Summary                                                                                            |
| ----------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `UIMultiplierUpdated`         | `0x2205df4534432b2f60654a3fdb48737ffdaf3e9edb1a498bd985bc026b15b055` | Emitted when the UI multiplier is updated.                                                         |
| `MultiplierUpdated`           | `0x4dbe4840d7465bd162f67814cea0b519567a2e0e578bcde61e7f4ced361e5a3d` | Deprecated multiplier-change event emitted by `updateMultiplier`.                                  |
| `UIMultiplierUpdateCancelled` | `0x883856335ba5f60c18b9817c4505d3c7d3f6223dcf39516b30c508c46a5e1cad` | A scheduled multiplier update was cancelled.                                                       |
| `ExtraMetadataUpdated`        | `0xd7bb345be29e78d635203d40fe0567e7ef19d5cd5cc5fcd25f768b8063e82aa1` | Emitted by `updateExtraMetadata`. An empty `value` indicates removal.                              |
| `Announcement`                | `0xccebf8218a62875909564adef86a6f4df81503cb617221e793357d62f8e813f7` | Emitted by `announce` to open an announcement bracket.                                             |
| `EndAnnouncement`             | `0x96d64dafe2c790596430196b982ad1da3221cb3b0f4e6e2df77f2e4f71a90037` | Emitted by `announce` to close the bracket opened by the paired `Announcement` with the same `id`. |

## Errors

| Error                            | Selector     | Summary                                                                                |
| -------------------------------- | ------------ | -------------------------------------------------------------------------------------- |
| `AnnouncementIdAlreadyUsed`      | `0xd10b3c9e` | `announce` was called with an `id` that has already been consumed.                     |
| `InvalidMetadataKey`             | `0x86ea3abb` | `updateExtraMetadata` was called with an empty `key`.                                  |
| `InvalidMultiplier`              | `0x6f12f3dc` | A multiplier setter (`updateUIMultiplier` or `updateMultiplier`) was called with a     |
| `EffectiveAtInPast`              | `0x14119cf6` | `updateUIMultiplier` was called with an `effectiveAt` that is not in the future        |
| `EffectiveAtTooFar`              | `0x1ce214fa` | `updateUIMultiplier` was called with an `effectiveAt` above `type(uint64).max`, the    |
| `UIMultiplierUpdateExists`       | `0x4481a68e` | `updateUIMultiplier` was called while a live pending update already exists             |
| `UIMultiplierUpdateDoesNotExist` | `0xa7d6a5ca` | `cancelUIMultiplierUpdate` was called when there is no live pending update             |
| `LengthMismatch`                 | `0xab8b67c6` | A batched function was called with parallel arrays of differing lengths.               |
| `EmptyBatch`                     | `0xc2e5347d` | A batched function was called with empty arrays.                                       |
| `AnnouncementInProgress`         | `0x5c5f0829` | An inner call dispatched by `announce` tried to re-invoke `announce`.                  |
| `InternalCallMalformed`          | `0x4e2f143e` | An inner call dispatched by `announce` was shorter than four bytes.                    |
| `InternalCallFailed`             | `0xb288a127` | An inner call dispatched by `announce` reverted with an ordinary revert; its reason is |

<CardGroup cols={2}>
  <Card title="Errors & events index" href="/base-chain/specs/upgrades/beryl/b20/specification/reference/errors-and-events-index" />

  <Card title="Constants & addresses" href="/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses" />
</CardGroup>
