# Asset whitelist

Each asset can enforce a whitelist: the addresses allowed to hold and move it. While the whitelist is enforced, the contract refuses movements from addresses that are not on it, and SQRL Enterprise refuses to send the asset to an address that is not on it.

> Part of the SQRL documentation, section "SQRL Enterprise".
> Rendered page: https://docs.sqrl.tech/enterprise/assets/whitelist

## How the whitelist is enforced

* **Holders** are checked by the asset contract on-chain. A holder who is not on the whitelist cannot move what they hold.
* **Recipients** are checked by SQRL Enterprise before a mint or transfer becomes a transaction. A destination that is not on the whitelist cannot be selected. Tokens sent to a non-listed address from outside SQRL Enterprise cannot move again until the address is approved.

## Adding and removing addresses

**Required permissions:** Manage compliance (`MANAGE_COMPLIANCE`).

1. Open the asset and select **Whitelist an address**, or open the asset's **Whitelist** tab.
2. Enter the address, or pick one from the [Address Book](/enterprise/whitelist-management).
3. Confirm.

A whitelist change is a contract call signed by the administering vault's quorum. Once it is broadcast, it applies to every movement after it.

Removing an address stops it moving the asset, which in effect freezes the balance it holds. Use [Enforcement](/enterprise/assets/enforcement) instead when the restriction is a legal action, so it carries a reason code and a case reference.

## Enforcing or stopping enforcement

**Required permissions:** Manage compliance (`MANAGE_COMPLIANCE`).

An asset that should circulate freely can stop enforcing its whitelist: select **Stop enforcing**. Select **Enforce whitelist** to turn it back on. Both are signed by the quorum.

  Each asset has its own whitelist. Approving an address for one asset approves nothing for another.
