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

# IB20Asset.updateUIMultiplier

> Generated B20 reference for updateUIMultiplier(uint256,uint256).

## Signature

```solidity theme={null}
function updateUIMultiplier(uint256 newMultiplier, uint256 effectiveAt) external;
```

| Field               | Value                                 |
| ------------------- | ------------------------------------- |
| Selector            | `0x628e600f`                          |
| Canonical signature | `updateUIMultiplier(uint256,uint256)` |

## Description

Schedules a UI-multiplier update to take effect at `effectiveAt` — the canonical path for corporate actions (splits, reinvested dividends). Evaluation is lazy: `multiplier()` / `uiMultiplier()` flip automatically once `block.timestamp` reaches `effectiveAt`. Only one pending update can be live at a time.

## Parameters

| Name            | Type      | Description                                                                                                                  |
| --------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `newMultiplier` | `uint256` | New multiplier scaled to `WAD_PRECISION`. Must be non-zero and at most `MAX_UI_MULTIPLIER()` (`type(uint128).max`).          |
| `effectiveAt`   | `uint256` | Timestamp at which `newMultiplier` becomes effective; must be strictly in the future and no greater than `type(uint64).max`. |

## Revert conditions

| Error                              | Condition                                                                                                            |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `AccessControlUnauthorizedAccount` | Caller does not hold `OPERATOR_ROLE`.                                                                                |
| `InvalidMultiplier`                | `newMultiplier` is zero or above `type(uint128).max`.                                                                |
| `EffectiveAtInPast`                | `effectiveAt <= block.timestamp`.                                                                                    |
| `EffectiveAtTooFar`                | `effectiveAt > type(uint64).max`.                                                                                    |
| `UIMultiplierUpdateExists`         | A live pending update already exists. Cancel it first with `cancelUIMultiplierUpdate()` before scheduling a new one. |

## Access control

`OPERATOR_ROLE` gates this call.

## Events emitted

On success, emits `UIMultiplierUpdated(oldMultiplier, newMultiplier, effectiveAt)` once the scheduled update is stored. (The event fires at scheduling time; the multiplier itself flips lazily at `effectiveAt`.)

## Example

```solidity Title Schedule a 2:1 forward split theme={null}
bytes[] memory internalCalls = new bytes[](1);
internalCalls[0] = abi.encodeCall(IB20Asset.updateUIMultiplier, (2e18, exDateTimestamp));

IB20Asset(token).announce({
    internalCalls: internalCalls,
    disclosure: disclosureURI
});
```
