# Withdrawing Pool Tokens

Balancer Pool Tokens (BPT's) can be withdraw as they become available. Only those that are available can be withdrawn. The remaining balance stays in the contract until such time that they become available and can be withdrawn.&#x20;

BPT's gradually start to unlock after 10 epochs with the last BPT being unlocked after 52 epochs

{% hint style="info" %}
See the [release schedule](/protocol-overview/launch/eth-egl-release-schedule.md#matching-egls) for a detailed breakdown of when the BPT's are released.
{% endhint %}

### 1. `withdrawPoolTokens()`

#### Function Signature

```javascript
function withdrawPoolTokens() external whenNotPaused 
```

#### Validations

| Validation **Rule**                                                   | Description                                                                                                                                |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `supporters[msg.sender].poolTokens > 0`                               | Calling address must have available pool tokens to withdraw                                                                                |
| `block.timestamp.sub(firstEpochStartDate) > minLiquidityTokensLockup` | Cannot withdraw pool token before the minimum lockup period has elapse                                                                     |
| `_supporter.firstEgl <= currentSerializedEgl`                         | The current serialized EGL must be after the calling addresses first EGL - meaning the calling addresses BPT's have started to be released |

#### Events Emitted

* `SerializedEglCalculated`
* `PoolTokensWithdrawn`
* `Transfer`

#### Web3 Example

```javascript
await eglVotingInstance.withdrawPoolTokens({ from: "0x2be650ba..."})
```


---

# 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.egl.vote/documentation/withdrawing-pool-tokens.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.
