Understanding the Withdrawal Flow
This section describes the lifecycle of a withdrawal on the Layer1 platform, outlining the different statuses a transaction goes through from initiation, when it it first created by API request, to completion where the funds will have been deposited in the destination wallet address.
Withdrawal Status Table
A Withdrawal will go through a series of statuses in the deposit workflow, with each status denoting a specific process has occured:
Status | Description |
---|---|
Created | The withdrawal request is first registered with the created status. |
Rejected | The withdrawal is rejected if there are insufficient funds within the asset pool to action the withdrawal. |
Funds_Reserved | The withdrawal has moved funds from the available balance to the reserved balance. |
Screening_Requested | The withdrawal has moved into the screening phase and needs to be screened. |
Held | The withdrawal has been held to be manually reviewed. |
Screening_Passed | The withdrawal has passed screening, either manual or automatic. |
Signed | The withdrawal is signed and submitted to the blockchain |
Detected | The withdrawal has been detected and distributed on the blockchain, but does not yet have any confirmations. |
Failed | The withdrawal failed due to an on-chain error has occurred during execution, could be multiple underlying reasons. |
Unconfirmed | The withdrawal has had one or more blockchain confirmations, but has not yet reached the required confirmation limit. |
Confirmed | The withdrawal has reached the required confirmation limit and is not fully confirmed on the blockchain.. |
Success | The withdrawal is successful and the balance of the asset pool is updated to reflect this. |
Withdrawal Flow Diagram
Describing the Withdrawal Flow
- A new transaction request is registered with status of CREATED and type of WITHDRAWAL.
- A check is made to see if asset pool contains sufficient funds to create the withdrawal.
- If NO the WITHDRAWAL moves to final state of REJECTED.
- If YES then the WITHDRAWAL proceeds with funds reservation.
- During funds reservation the funds to be sent will be moved from the available balance to the reserved balance of the source address or addresses. The state is updated to FUNDS_RESERVED.
- After the funds are reserved the Transaction will need to be screened and moves into a state of SCREENING_REQUESTED
- During the screening requested phase, the transaction is screened.
- If released the WITHDRAWAL will move into a SCREENING_PASSED state.
- If not released it will move into a HELD state.
- During the held state, the funds can be manually approved.
- If manually approved, the WITHDRAWAL will move into a SCREENING_PASSED state.
- if not approved, the WITHDRAWAL moves to final state of REJECTED.
- once screening is passed the WITHDRAWAL will undergo assembly and signing, it is ready for blockchain submission and state is updated to SIGNED.
- The WITHDRAWAL is then submitted to the blockchain for processing. It is picked up by the blockchain monitoring logic and moves to a DETECTED state.
- The respective blockchain will process the transaction and include it in a new block. This blockchain transaction may contain errors if unsuccessful.
- If YES then the WITHDRAWAL is assigned FAILED as this action is irreversible.
- If NO the WITHDRAWAL status is updated to UNCONFIRMED and is monitored until desired confirmation threshold is reached. More on confirmation threshold in our FAQs.
- Once the required number of confirmations are reached the WITHDRAWAL is moved to CONFIRMED state.
- The reserved funds are released and available balance is updated to reflect the irrevocable blockchain fund movement. The WITHDRAWAL is now finalised and state is set to SUCCESS.
Now that you understand the different statuses and processes that a transaction goes through, you can issue your first withdrawal as shown in the next section.
Updated about 2 months ago