# Transfer approval

Source: https://docs.settlemint.com/docs/operators/compliance/transfer-approval
Configure the DALP transfer-approval compliance module so an authorised approver must clear every transfer before it executes on chain.



The transfer-approval compliance module requires explicit approval from a configured authority before any regulated transfer executes. Use the module for securities that need transfer-agent oversight, restricted-equity programs where the issuer must clear every sale, or any operating model that requires pre-clearance instead of (or alongside) policy-based eligibility checks.

For the architecture reference, see [Transfer approval](/docs/compliance-security/compliance/transfer-approval).

## Prerequisites [#prerequisites]

* The asset already exists (configure during creation) or you have the Asset administrator role on the deployed asset.
* The approver wallets or OnchainIDs are known and the operating team has agreed who holds the approval role.
* A workflow exists for collecting transfer-approval requests off chain and bringing them to the approver (the approver still acts through the platform, but the case-management workflow often runs in the operator's normal compliance tooling).

## Configure during asset creation [#configure-during-asset-creation]

In the Asset Designer compliance step, pick the transfer-approval module. Configure:

* The approver wallet(s) or OnchainID(s) authorised to grant approvals.
* Any approval expiry window (an approval that goes unused after the window expires).
* Whether self-approval is allowed (typically false for separation of duties).

## Configure on an existing asset [#configure-on-an-existing-asset]

From the asset detail workspace, open the compliance tab and update the transfer-approval configuration. Changes apply forward; pending approvals issued under the previous configuration remain valid until they execute or expire.

## Approve a transfer [#approve-a-transfer]

An approver pre-clears a specific transfer before the holder executes it. From the asset detail workspace, open the **Manage asset** menu and choose **Approve transfer**. This action appears when the asset uses the transfer-approval module and your identity is listed as an approval authority for that module.

In the sheet, enter:

* The sender (from) wallet address.
* The recipient (to) wallet address.
* The exact amount to clear.

Review the summary, then confirm with your wallet. The approval clears exactly one transfer matching those parameters. The holder executes the transfer within the approval window; once executed, the approval is consumed.

How the approval behaves depends on the module's configured mode:

* **Exact** — the approval clears exactly one transfer whose amount matches the approved amount precisely. A different sender, recipient, or amount is not covered.
* **Up to once** — the approval clears one transfer of any amount up to the approved limit, then it is consumed.
* **Up to total** — the approval clears multiple transfers whose cumulative amount does not exceed the approved limit. Each transfer reduces the remaining allowance until the limit is exhausted.

The **Approve transfer** and **Revoke transfer approval** actions appear in the Manage asset menu only when the asset has the transfer-approval module configured and you hold the matching approval permission.

The approver workflow can also run through the actions queue:

1. The holder requests a transfer through the normal transfer flow. The module records a pending approval.
2. The approver opens the actions queue, reviews the pending transfer (parties, amount, asset, supporting context), and grants or rejects the approval.
3. The granted approval permits exactly one transfer matching the recorded parameters. The holder executes the transfer within the approval window.

See [Actions work queue](/docs/operators/runbooks/actions-work-queue) for the queue-based approver workflow.

## Track and revoke approvals [#track-and-revoke-approvals]

The asset's compliance tab lists every transfer approval for the asset. Each row shows the sender, recipient, amount, expiry (or **Never** when no window is set), and status:

| Status   | Meaning                                                                               |
| -------- | ------------------------------------------------------------------------------------- |
| Pending  | Approved and not yet used. The matching transfer can still execute within the window. |
| Consumed | The matching transfer has executed. The approval is spent.                            |
| Revoked  | The approval was cancelled before use and can no longer clear a transfer.             |

Revoke an approval to cancel it before the holder uses it. With the revoke-transfer-approval permission, select **Revoke** on a pending row in the list, or open the **Manage asset** menu, choose **Revoke transfer approval**, and enter the approval's parameters. Only pending approvals can be revoked; consumed and revoked approvals offer no revoke action.

## Operating considerations [#operating-considerations]

* The module requires approval for every regulated transfer. Mints and burns are not regulated transfers under this module (they go through the supply-management role instead).
* Approval is per transfer instance, not per holder pair. A repeat transfer between the same holders requires a fresh approval.
* Approvals do not bypass other compliance modules. A transfer approved by the transfer-approval module still must pass identity verification, country restrictions, and any other configured module.
* Pending approvals carry an audit trail; rejected approvals also record the rejecting wallet and timestamp.

## What stays external [#what-stays-external]

The off-chain case-management workflow (ticket tracking, approver communication, supporting-document collection) and the policy that defines what an approver should consider before granting approval stay with your operating team.

## Troubleshooting [#troubleshooting]

| What you see                                                       | What to check                                                                                                                                                                                            |
| ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Transfer rejected as awaiting approval                             | The approver has not yet granted approval. Open the actions queue and process the request.                                                                                                               |
| Approval granted but transfer still fails                          | Confirm other configured compliance modules (identity, country, allow-list) also pass. The approval covers only the transfer-approval module.                                                            |
| Approval expired unused                                            | Approvals expire after the configured window. Issue a fresh approval and have the holder retry.                                                                                                          |
| No Approve transfer or Revoke transfer approval action in the menu | The actions appear only when the asset uses the transfer-approval module and your role grants the matching permission. Confirm both before expecting the actions.                                        |
| Revoke not offered on an approval row                              | Only pending approvals can be revoked. Consumed and revoked approvals are final.                                                                                                                         |
| Need to cancel an approval before it executes                      | Revoke it inline from the **Pending** row in the asset's Transfer Approvals list, or use **Revoke transfer approval** in the Manage asset menu. A revoked approval requires a fresh approval to proceed. |

## Read next [#read-next]

* [Compliance overview](/docs/operators/compliance/overview)
* [Transfer approval architecture](/docs/compliance-security/compliance/transfer-approval)
* [Actions work queue](/docs/operators/runbooks/actions-work-queue) for the approver workflow.
