# Withdraw Crypto Workflow

<figure><img src="https://2591223895-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0x70K9i86BsAzDYDnzq2%2Fuploads%2Fz2MZK4gn43t6TA9lUq3K%2Fimage.png?alt=media&#x26;token=ea761795-d8db-4270-af98-390652b34e42" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}

**Redemption Cooldown Period**

1. The purpose of setting a redemption cooldown period is to prevent large-scale funds from entering the system and quickly exiting before or after a rebase, effectively draining a large portion of the pool's profits.
2. The duration of this cooldown period is to be determined, and further discussion at the business level is needed.

**Directed Redemption Feature**

1. In normal redemption within the PLP system, the initiator of pfToken redemption can specify another address as the recipient of the redemption request, allowing the recipient to claim the redeemed USDT from the contract.
2. During the fast redemption process within the staking pool (pfToken-USDT Swap), the initiator of the redemption can specify the recipient of the USDT after the swap. The transaction will directly transfer the swapped USDT to the designated user.
   {% endhint %}

## **Refund/Withdrawal**&#x20;

1-1. The customer initiates a refund request to the merchant.&#x20;

1-2. The merchant initiates a withdrawal request to A Gateway.

{% hint style="warning" %}
In this version, both the merchant processing the user refund and initiating their own withdrawal are essentially the same action, requiring A Gateway to withdraw USDT or pfUSDT from the Protocol and provide it to the merchant.
{% endhint %}

## **Fast Redemption**&#x20;

2-1. A Gateway calculates the corresponding pfUSDT amount for the user’s withdrawal request, then initiates a fast exchange with the PLP Staking contract, specifying the recipient address.

2-2. The PLP Staking contract transfers USDT from the pool to the merchant.

## **Normal Redemption**&#x20;

3-1. A Gateway calculates the corresponding pfUSDT amount for the user’s withdrawal request, then initiates a redemption request to the PLP core contract, specifying the redeeming address.&#x20;

3-2. After receiving the redemption request and verifying its accuracy, the PLP core contract calls the burn method of the pfUSDT contract to destroy pfUSDT.

{% hint style="warning" %}
Once the burn process is completed, the PLP core contract locks the corresponding USDT for the user.
{% endhint %}

3-3. After the redemption window expires, the merchant can initiate the redemption to receive the USDT from the PLP core contract.

## **pfUSDT Redemption**&#x20;

4-1. A Gateway may choose to directly transfer pfUSDT to the merchant.

{% hint style="warning" %}
The merchant will then need to initiate the redemption request and redeem the funds.
{% endhint %}
