> For the complete documentation index, see [llms.txt](https://docs.bancor.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bancor.network/developer-guides/write-functions/migrating-liquidity-to-v3/migrating-bancor-positions-to-v3/migratepositions.md).

# migratePositions()

Migrate Bancor v2.1 pool tokens to Bancor v3

### Function migratePositions()

{% code title="LiquidityProtection.sol" %}

```javascript
function migratePositions(PositionList[] calldata positionLists) external

struct PositionList {
        IDSToken poolToken; // pool token address
        IReserveToken reserveToken; // reserve token address
        uint256[] positionIds; // position ids
    }
```

{% endcode %}

This function migrates **Bancor v2.1** pool tokens to Bancor v3. Use this function for whitelisted pools on the Bancor network.&#x20;

### Function Arguments

| Name         | Type          | Description                               |
| ------------ | ------------- | ----------------------------------------- |
| poolToken    | IDSToken      | The token being migrated from Bancor v2.1 |
| reserveToken | IReserveToken | The token being reserved on Bancor v3     |
| positionIds  | uint256       | Identify which token is at which position |
