# Withdrawal Lifecycle

{% stepper %}
{% step %}

### SourceTxDiscovered

This is the initial state of an operation, which is created when a deposit is discovered in a Hyperliquid block. A withdrawal is identified as a [Hyperliquid transfer](https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#l1-spot-transfer) - greater than the [minimum](/developers/api/operations/deposit-lifecycle.md) for the source-chain - to a Unit withdrawal address.&#x20;

Once a sourceTx is discovered, the deposit operation goes through validation, which includes checks for [sanctioned addresses](/legal/regulatory-compliance.md).&#x20;
{% endstep %}

{% step %}

### WaitForSrcTxFinalization

Unit requires 5000 confirmations for a Hyperliquid withdrawal to be considered final.
{% endstep %}

{% step %}

### ReadyForWithdrawQueue

In accordance with throughput limitations of supported networks, destination transactions are staged on a withdraw queue to be triggered in batches. Like sweeps, withdraw queue transactions are triggered every \~3 Bitcoin blocks for bitcoin withdrawals, and \~21 Ethereum slots for ethereum withdrawals.

The operation's `positionInWithdrawQueue` may be used to inform the expected completion of this state.
{% endstep %}

{% step %}

### QueuedForWithdraw

The operation has been included in a withdraw queue batch, the tx-hash of which corresponds to the tx-hash returned by the [withdraw queue endpoint](/developers/api/withdraw-queue.md) and can be inspected on any explorer for the destination network.
{% endstep %}

{% step %}

### Done

The withdrawal is finalized on the destination network. The operation's state is officially "done" - this state is terminal.
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hyperunit.xyz/developers/api/operations/withdrawal-lifecycle.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
