Transfer approval
Require explicit authoriser sign-off on every regulated transfer before it settles on chain.
The transfer-approval compliance module blocks any regulated transfer until a named approval authority grants it for the exact sender, recipient, and amount. 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 in place of (or alongside) policy-based eligibility checks.
For the architecture reference, see Transfer approval.
Prerequisites
- The asset already exists, configured during creation, or you hold 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
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 unused approval expires after this window.
- Whether self-approval is allowed. Set this to false for separation of duties.
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
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 menu item 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 wallet address.
- The recipient 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.
Both menu items 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 work queue:
- The holder requests a transfer through the normal transfer flow. The module records a pending approval.
- The approver opens the work queue, reviews the pending transfer including parties, amount, asset, and supporting context, then grants or rejects the request.
- The granted approval permits exactly one transfer matching the recorded parameters. The holder executes the transfer within the approval window.
See the work queue guide for the queue-based approver workflow.
Track and revoke approvals
The asset's compliance tab lists every transfer approval on the asset. Each row shows the sender, recipient, amount, expiry ("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 are final.
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.
- 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
The off-chain case-management workflow, covering ticket tracking, reviewer communication, and supporting-document collection, stays with your operating team. So does the policy that defines what a reviewer should consider before granting approval.
Troubleshooting
| What you see | What to check |
|---|---|
| Transfer rejected as awaiting approval | The approver has not yet granted approval. Open the work 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 item in the menu | These menu items appear only when the asset uses the transfer-approval module and your role grants the matching permission. Confirm both. |
| 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
- Compliance overview
- Transfer approval architecture
- Work queue for the queue-based approver workflow.
Time lock
Enforce a minimum holding period on received units so asset positions cannot be transferred until the configured lock duration has elapsed.
Configure collateral backing requirements for assets
Configure the collateral compliance module so DALP checks the asset identity for a valid collateral claim before minting more supply.