Introduction
The Wallet Manager makes it possible to create outbound transfers from the Wallets managed on the Parfin Platform and to track every stage of the operation through to its outcome.
When a transfer is initiated by the Platform, the Wallet Manager coordinates the flow across the different components involved:
Creation → Governance → AML (when enabled) → Custody Provider → Completion
Each stage plays a different role:
- Governance — checks whether the operation received the approvals required by the instance;
- AML — assesses the risk of the destination address, when the module is enabled;
- the Custody Provider — creates, signs, and processes the transfer;
- the Wallet Manager — tracks the updates and presents the progress in a standardized structure.
This article explains:
- what is required before starting a transfer;
- how to fill in and confirm the transfer request;
- how Governance and AML take part in the flow;
- how to track the progress of the operation;
- why a transfer may be rejected, canceled, or fail;
- how to identify operations created directly on the provider.
Before you start
To create an outbound transfer, the following must be ensured:
- the required settings have been made on the custody provider;
- the custody provider is connected and active on the instance;
- an approval flow (governance) applicable to the transfer exists;
- the Wallet has sufficient available balance.
The options available during creation may vary according to:
- the custody provider responsible for the Wallet;
- the network;
- the asset;
- the Wallet type;
- the features enabled in the integration;
- the rules and permissions configured directly on the provider.
Important: every outbound transfer initiated by the Wallet Manager must go through the Governance flow. Without an applicable Wallet Manager Policy, the transfer can't be created.
Wallet Manager Policies
The approval rules for transfers are configured in: Governance > Wallet Manager Policies.
The policies determine which approvals are required for transfers, based on information such as:
- the initiator;
- the source (custody provider);
- the destination;
- the asset;
- the value or amount of the operation.
When a transfer is created, the Platform evaluates whether there is a configured policy (Wallet Manager Policy) that covers the conditions of that operation.
If no policy is applicable, creation is blocked by default.
When an applicable policy exists, the Wallet Manager allows the creation and waits for the required approvals before it can move to the next stage.
The balance isn't reserved during the approval and AML flow
The Wallet Manager checks the available balance reported by the custody provider, but it doesn't reserve or lock that amount while the transfer awaits the governance approval and AML flow (when applicable).
This means that:
- the balance may be available at the moment of creation;
- the transfer may remain awaiting approval;
- another operation may use part of that balance;
- when the transfer is approved and sent to the provider, the balance may no longer be sufficient.
For this reason, a transfer may be approved in governance and still be rejected later by the provider due to insufficient available balance.
It is recommended to always check the Wallet's balance before approving a pending operation.
How to create a transfer
1. Starting the creation
The transfer creation can be accessed from different areas of the Platform, such as:
Portfolio
- the page's main header, “Send” button;
- the send icon, within the Managed Wallets tab;
Wallet Manager
the page's main header, “Send” button;
the send icon, next to the Wallets on the pages:
- Wallets
- Detailed view by asset (Assets > selected asset)
Vault Details
the send icon, next to the Wallets' assets on the page
Depending on the entry point, some information may come prefilled, such as the Wallet, the asset, or the network.
Regardless of where the action is started, the transfer will follow the same Governance, AML, and Custody Provider execution stages.
2. Selecting the transfer parameters
Choose the asset to be transferred.
Select the source (custody provider, Vault, and Wallet).
Select the destination of the assets.
- The enabled options depend on the network, the asset, the custody provider, and the features available on the Platform.
Check the network (blockchain).
Enter the transfer amount.
Depending on the provider, the network, and the asset, the transfer type option will be available for selection:
- gross amount (To be sent) — the total amount to be “spent” is entered; the transfer fees will be deducted from this amount;
- net amount (To be received) — the amount that will arrive in the destination wallet is entered; the transfer fees will be deducted from the Wallet's remaining balance;
Enter the transfer priority (transaction fee priority).
The fees for a transfer are estimated automatically. Depending on the selected provider and network, the transfer priority option will be available for selection.
The priority sets how quickly the transfer can be confirmed on the network (blockchain):
- High (High) — a higher fee is applied to obtain a faster confirmation on the network.
- Medium (Medium) — a medium fee is applied to obtain a medium confirmation time on the network.
- Low (Low) — a lower fee is applied, but the confirmation time will be longer.
Each custody provider has its own rule for estimating the transfer fee. The provider's documentation can be consulted to understand in detail how this estimate works.
3. Reviewing and registering the request
Before confirming, it is important to carefully review the transfer data:
- Asset;
- Source Wallet and custody provider;
- Destination information;
- Network (blockchain);
- Amount;
- Transfer type and priority (when applicable);
- Fee estimate;
After confirming the creation, the Wallet Manager registers the request and starts the Governance flow.
Confirming the request doesn't immediately send the transfer to the custody provider or to the blockchain.
What happens after creation
1. Approval in Governance
Once registered, the transfer is sent to the Governance engine.
While it awaits the approvals:
- the operation hasn't yet been sent to the Custody Provider;
- no assets have been moved;
- the balance isn't reserved;
- the approvers can review the request according to the applied policy.
The possible outcomes of the governance approval flow are:
| Outcome | What happens |
|---|---|
| Approved | The transfer moves to the next stage. |
| Rejected | The transfer is closed as rejected. |
| Expired | The approval deadline ends and the transfer doesn't proceed. |
Rejected or expired transfers are not sent to AML or to the Custody Provider.
2. AML check
After approval in Governance, the transfer goes through AML when the module is enabled and applicable to the context.
In the outbound flow, the AML engine uses the settings configured on the instance (the connected AML provider and the risk profile) to assess the risk of the destination address and check whether the transfer can proceed:
- When AML is disabled or the result allows continuation, the transfer moves to the custody provider.
- When the result blocks the operation, the transfer is closed without being created on the provider.
More information about how AML works is available in the article: AML Module
3. Sending to the custody provider
After completing the previous stages, the Wallet Manager sends the request to the custody provider responsible for the Wallet.
The provider can then:
- validate the available balance;
- apply its internal rules and permissions;
- create the transfer;
- perform its own approvals, when they exist;
- sign the operation;
- broadcast the transfer to the blockchain;
- track the required confirmations.
The provider's internal controls are independent from Parfin's controls. A transfer approved in Governance and cleared by AML can still be rejected by the custody provider.
The Wallet Manager tracks the updates it receives and converts the providers' different states into a common language on the Platform.
How to track a transfer
Transfers can be reviewed on the Activity > Crypto Transfers page. To check further details, the desired transfer can be selected.
Transfer status flow
The main flow of an outbound transfer is:
Created → Pending Approval → Sending to AML → Pending AML → Sending to Custody Provider → Pending Custody Provider → Completed
This path can vary:
- if AML is disabled, the transfer goes from Governance directly to the Custody Provider;
- a failure can close the transfer at any stage;
- a Governance or AML rejection prevents the operation from proceeding to the provider;
- the provider may complete, cancel, or fail the transfer;
- an unrecognized status from the provider takes the operation to
Unknown.
Transfer statuses
The possible statuses of a transfer are listed below:
| Status | Description | Is it a final status? |
|---|---|---|
| Created | The request was registered by the Wallet Manager. | No |
| Pending Approval | The transfer awaits the result of the approvals defined by the applicable Wallet Manager Policy. It hasn't yet been sent to AML or to the Custody Provider. | No |
| Sending to AML | The transfer was approved in Governance and is being sent to the AML engine. This status doesn't occur when AML is disabled. | No |
| Pending AML | The transfer awaits the result of the AML assessment of the destination address. | No |
| Sending to CP | The Wallet Manager is sending the request to the custody provider responsible for the Wallet. | No |
| Pending CP | The transfer was created on the custody provider and remains in processing. As long as the provider sends intermediate updates, the operation stays in this status. | No |
| Completed | The provider reported that the transfer was completed successfully. | Yes |
| Rejected | The operation was prevented from continuing. This status can occur due to a rejection in Governance or an AML result classified as Risky. The transfer isn't sent to the provider. | Yes |
| Canceled | The operation was canceled in Governance or received a final result from the provider equivalent to a cancellation. | Yes |
| Failed | The transfer couldn't be completed due to a failure. The failure can occur at any of the transfer's stages. | Yes |
| Unknown | The custody provider returned a status that the Wallet Manager couldn't interpret. The original status is preserved and the operation depends on a technical review before its final result can be confirmed. | No |
Why a transfer may not proceed
An operation can be interrupted before reaching the blockchain for different reasons. Some examples are:
- there is no applicable Wallet Manager Policy;
- the request was rejected, canceled, or expired in the governance flow;
- AML blocked the continuation;
- a failure or timeout occurred in the communication with another service;
- the custody provider rejected the request;
- the connection's credentials don't have the required permission;
- an internal provider rule wasn't met;
Transfers created directly on the provider
The Wallet Manager can also detect and display outbound transfers created directly in the custody provider's system. In these cases:
- the transfer starts being tracked from the stage at which it was detected;
- there is no retroactive application of Parfin's Governance;
- there is no retroactive application of Parfin's AML;
- the provider's own controls remain valid;
- some data may not be available;
They can be identified on the Parfin Platform by checking the “Source” field in the transfer details. Transfers created directly on the custody provider show the information “Custody Provider” in this field.
The presence of a transfer on the Platform doesn't mean it went through Parfin's controls.
Provider-specific characteristics
This article describes the general flow of outbound transfers in the Wallet Manager.
Each custody provider may have differences related to:
- fee priority options;
- Net or Gross types;
- internal approvals;
- the possibility of cancellation;
- address validation;
- fee estimation and charging;
- intermediate statuses;
- processing time;
- displayed information;
- supported networks and assets;
- required permissions.
To learn about these characteristics, see:
- Parfin Custody in the Wallet Manager
- Fireblocks in the Wallet Manager
Learn more
To explore the related concepts, see: