# Withdraw

The [withdraw](/smart-contracts/documentation/distribution-protocol/v7-protocol/contracts/depositpool.md#withdraw) function allows users to partially or fully withdraw their previously staked tokens from a public reward pool. This operation reduces the user’s stake and, consequently, their share of MOR rewards.

Before executing a withdrawal, the contract verifies that the selected `rewardPoolIndex` corresponds to a valid and public reward pool. The withdrawal is only permitted if a required delay since the last stake (defined in the pool configuration as `withdrawLockPeriodAfterStake`) has passed.

The final withdrawn amount must also respect the `minimalStake` rule: the remaining user stake (if any) must not fall below the minimum stake required by the pool unless the user fully exits.

If the pool is public, the contract first calls `distributeRewards` to ensure the reward coefficient is up to date. Then, it calculates the user’s current rewards and applies the necessary multipliers to recalculate the virtual deposit. This ensures fair and accurate distribution of future rewards after the withdrawal. Then, the withdrawn tokens are first pulled from the `Distributor` using [withdraw](/smart-contracts/documentation/distribution-protocol/v7-protocol/contracts/distributor.md#withdraw) and then transferred to the user via `safeTransfer`

The user may continue to interact with the contract or fully exit their stake. Fully exiting resets most of their staking data except reward history.


---

# 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://gitbook.mor.org/smart-contracts/documentation/distribution-protocol/v7-protocol/get-started/withdraw.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.
