> ## 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.

# IB20.seizeWithMemo

> Generated B20 reference for seizeWithMemo(address,address,uint256,bytes32).

[Related concept](/base-chain/specs/upgrades/beryl/b20/specification/concepts/token-lifecycle)

## Signature

```solidity theme={null}
function seizeWithMemo(address from, address to, uint256 amount, bytes32 memo) external returns (bool);
```

| Field               | Value                                            |
| ------------------- | ------------------------------------------------ |
| Selector            | `0xf916d81b`                                     |
| Canonical signature | `seizeWithMemo(address,address,uint256,bytes32)` |

## Description

Seizes `amount` of `from`'s balance and reassigns it to `to` in a single admin operation.
Emits, in order, `Transfer(from, to, amount)`, `Memo(caller, memo)`, and
`Seized(caller, from, to, amount)`. A memo of `bytes32(0)` is permitted.
Dev: Admin operation: skips allowance and the transfer policies. The only membership check is that
`from` is blocked under `SEIZE_HOLDER_POLICY`.
Dev: `to` is not policy-checked; the destination need not be allowlisted.
Dev: Reverts with `ContractPaused(SEIZE)` when `SEIZE` is paused.
Dev: Reverts with `AccessControlUnauthorizedAccount` when the caller does not hold `SEIZE_ROLE`.
Dev: Reverts with `InvalidReceiver` when `to == address(0)`.
Dev: Reverts with `AccountNotSeizable` when `from` is currently authorized under `SEIZE_HOLDER_POLICY`.
Dev: Reverts with `InsufficientBalance` when `from`'s balance is below `amount`.
Param: from   Account whose balance is being seized.
Param: to     Destination address for the seized balance.
Param: amount Amount to seize.
Param: memo   Memo payload.
Return: Always `true` on success.

## Access control

`SEIZE_ROLE` gates seizure calls.

## Policy interaction

Checks `SEIZE_HOLDER_POLICY`; the holder is seizable only when not authorized.

## Example

```solidity theme={null}
IB20(token).seizeWithMemo(holder, destination, amount, memo);
```

## Related

* [IB20 reference](/base-chain/specs/upgrades/beryl/b20/specification/reference/interfaces/IB20)
* [Constants & addresses](/base-chain/specs/upgrades/beryl/b20/specification/reference/constants-and-addresses)
