> For the complete documentation index, see [llms.txt](https://csigma-asset-tokenization.gitbook.io/atlas/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://csigma-asset-tokenization.gitbook.io/atlas/pool-manager/withdrawal-queue.md).

# Withdrawal Queue

### Overview

The **Withdrawal Queue** is an optional liquidity management feature that allows lenders to submit withdrawal requests even when the pool does not currently have enough liquidity to process them.

If enabled, lenders can place a **withdrawal request on-chain**, which is then added to a queue and processed once liquidity becomes available in the pool.

The withdrawal queue operates on a **FIFO (First-In, First-Out)** basis, ensuring that withdrawal requests are fulfilled in the order they were submitted.

### Enabling Withdrawal Queue

The Pool Manager can enable the Withdrawal Queue from the **Vault widget** inside the Tokenized Pool.

To enable it:

1. Navigate to the **Asset Tokenization** tab.
2. Select the desired **Tokenized Pool**.
3. Locate the **Vault widget**.
4. Click the **Create Withdrawal Queue** option.

<figure><img src="https://3125893853-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ffmxk4zctrz092V9PoVdO%2Fuploads%2FXBmdKTF3biWFZ7vHHcfD%2Fimage.png?alt=media&amp;token=048f6fb9-ca1b-47e1-a190-3e2a2981dc7f" alt=""><figcaption></figcaption></figure>

Once enabled, lenders will be able to submit withdrawal requests when the pool lacks sufficient liquidity.

### How Withdrawal Requests Work

When a lender attempts to withdraw funds but the pool does not have enough liquidity in the **Reserve Balance**, the lender can submit a **withdrawal request**.

In this case:

* The request is **recorded on the blockchain**
* The request is placed in the **withdrawal queue**
* The lender waits until liquidity becomes available

Requests are processed strictly in **FIFO order**.

### Fulfilling Withdrawal Requests

Pool Managers can fulfill queued withdrawal requests when liquidity becomes available using two mechanisms.

#### 1. Using "To Reserve"

This method uses **Available Balance** to fulfill pending withdrawals.

When the Pool Manager transfers funds from **Available Balance → Reserve Balance** using the **To Reserve** function:

* The system first checks the withdrawal queue
* Pending requests are automatically fulfilled
* Any remaining amount is added to the Reserve Balance

<figure><img src="https://3125893853-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ffmxk4zctrz092V9PoVdO%2Fuploads%2FJK7r0DiX8YC0BNNW4Qhm%2Fimage.png?alt=media&amp;token=eaa6e191-4d79-4e4b-adee-571bbfc495e9" alt=""><figcaption></figcaption></figure>

This method is useful when liquidity becomes available from **capital returned by Sub Pools**.

#### 2. Using "Notify Withdrawal"

The **Notify Withdrawal** button is available in the **Vault widget**.

This option allows the Pool Manager to process withdrawals using the **existing Reserve Balance**.

<figure><img src="https://3125893853-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ffmxk4zctrz092V9PoVdO%2Fuploads%2Fs9VGidM5rBd64hgYL65M%2Fimage.png?alt=media&amp;token=6e4e8441-d536-4492-be02-792681aa8bcf" alt=""><figcaption></figcaption></figure>

When the Pool Manager clicks **Notify Withdrawal**:

* The platform checks the withdrawal queue
* Funds are taken from the **Reserve Balance**
* Pending withdrawal requests are fulfilled in **FIFO order**

#### Example

Assume the following situation:

| Category         | Amount   |
| ---------------- | -------- |
| Withdrawal Queue | 200 USDC |
| Reserve Balance  | 200 USDC |

If the Pool Manager clicks **Notify Withdrawal**:

* **200 USDC** from the Reserve Balance is used
* The queued withdrawal requests are fulfilled
* The withdrawal queue is cleared

### Important Notes

* The Withdrawal Queue feature is **optional and controlled by the Pool Manager**.
* Withdrawal requests are recorded **on-chain**.
* Requests are processed strictly in **FIFO order**.

### Role Responsibility

**Pool Manager Responsibilities**

* Enable the Withdrawal Queue feature
* Monitor pending withdrawal requests
* Provide liquidity to fulfill queued withdrawals

**cSigma Platform Responsibilities**

* Track withdrawal requests

The Withdrawal Queue ensures that lenders can **request withdrawals even during temporary liquidity constraints**, while maintaining transparent and orderly processing of withdrawal requests.
