> For the complete documentation index, see [llms.txt](https://docs.tokensfarm.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tokensfarm.com/for-developers/perpetualtokensfarm/withdraw.md).

# Withdraw

&#x20;WITHDRAW SYSTEM : You can withdraw in two ways \
\
• You can withdraw stake + rewards for that stake in one go\
&#x20;   1\. If `coolDown == 0` user can call `withdraw` and immediately withdraw

```solidity
function withdraw(
    uint256 _amount,
    uint256 stakeId
)
```

&#x20;2\. if `coolDown > 0` user needs to first initiate withdraw request calling makeWithdrawRequest

```solidity
function makeWithdrawRequest(
    uint256 _amount,
    uint256 stakeId
)
```

&#x20; After coolDown period has passed user will initiate withdraw&#x20;

```solidity
function withdraw(
    uint256 _amount,
    uint256 stakeId
)id
```

\
• You can only withdraw earned rewards for all stakes by user calling&#x20;

```solidity
function withdrawRewards()
```
