> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base.org/llms.txt
> Use this file to discover all available pages before exploring further.

# IB20.pause

> Pauses one or more token operation classes, blocking the gated functions until each feature is unpaused.

## Signature

```solidity IB20.sol theme={null}
function pause(PausableFeature[] calldata features) external;
```

| Field               | Value            |
| ------------------- | ---------------- |
| Selector            | `0xa290249c`     |
| Canonical signature | `pause(uint8[])` |

## Description

Pauses each feature in `features`. The call is additive: features already paused remain paused, and duplicates within the array are silent no-ops. Emits `Paused(updater, features)` with the exact array passed. While a feature is paused, the operations it gates revert `ContractPaused(feature)`.

## Parameters

| Parameter  | Description                                                       |
| ---------- | ----------------------------------------------------------------- |
| `features` | One or more `PausableFeature` values to pause. Must be non-empty. |

## Reverts

* `AccessControlUnauthorizedAccount(account, neededRole)`: caller does not hold `PAUSE_ROLE`.
* `EmptyFeatureSet()`: `features.length == 0`.

## Access Control

`PAUSE_ROLE` gates this call. `PAUSE_ROLE` and `UNPAUSE_ROLE` are separate roles, so the account that pauses need not be the account that resumes.

## Policy Interaction

No direct policy interaction.

## Pausable Features

| Value      | Gates                                                |
| ---------- | ---------------------------------------------------- |
| `TRANSFER` | `transfer`, `transferFrom`, and memo variants        |
| `MINT`     | `mint`, `mintWithMemo`, and Asset `batchMint`        |
| `BURN`     | `burn`, `burnWithMemo`, and deprecated `burnBlocked` |
| `SEIZE`    | `seizeWithMemo`                                      |

The ABI encodes `PausableFeature` as `uint8`, in enum order (`TRANSFER` = 0, `MINT` = 1, `BURN` = 2, `SEIZE` = 3). `B20Constants.ALL_FEATURES_PAUSED` (`15`) is the bitmask with all four set.

## Example

```solidity Usage Example theme={null}
// Pause MINT and BURN in one call; TRANSFER remains live.
PausableFeature[] memory features = new PausableFeature[](2);
features[0] = PausableFeature.MINT;
features[1] = PausableFeature.BURN;
IB20(target).pause(features);
```
