> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainworks.co/llms.txt
> Use this file to discover all available pages before exploring further.

# EVM Liquidity Pools

> List Uniswap V4 and PancakeSwap V4 liquidity pools for a token on EVM chains.

List the Uniswap V4 and PancakeSwap V4 liquidity pools that hold a given token. Both endpoints take the same parameters and return the same shape.

***

## Uniswap V4 Pools

Find Uniswap V4 pools for a token.

**Endpoint:** `/evm/uniswap-v4/liquidity-pools`

| Parameter       | Type      | Required | Description                                                    |
| --------------- | --------- | -------- | -------------------------------------------------------------- |
| `chain`         | string    | Yes      | Chain identifier: `eth`, `base`, or `bsc`                      |
| `token`         | string    | Yes      | Token contract address                                         |
| `maxPools`      | number    | No       | Maximum number of pools to return                              |
| `backingTokens` | string\[] | No       | Restrict results to pools paired against these token addresses |

**Example:**

<Tabs>
  <Tab title="Socket.IO">
    ```typescript theme={null}
    socket.emit("/evm/uniswap-v4/liquidity-pools", {
      chain: "eth",
      token: "0x6982508145454Ce325dDbE47a25d4ec3d2311933", // PEPE
    });
    ```
  </Tab>

  <Tab title="HTTP">
    ```typescript theme={null}
    await fetch("https://api.chainworks.co/evm/uniswap-v4/liquidity-pools", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: CHAINWORKS_API_AUTH_TOKEN,
      },
      body: JSON.stringify({
        chain: "eth",
        token: "0x6982508145454Ce325dDbE47a25d4ec3d2311933", // PEPE
      }),
    });
    ```
  </Tab>
</Tabs>

**Response:**

`result` is an array of pools, or `null` when none are found.

```json theme={null}
{
  "success": true,
  "result": [
    {
      "poolId": "0x9a8...c41",
      "tick": -198432,
      "tickSpacing": "60",
      "sqrtPriceX96": "1023456789012345678901234",
      "fee": 3000,
      "currency0": "0x0000000000000000000000000000000000000000",
      "currency1": "0x6982508145454Ce325dDbE47a25d4ec3d2311933",
      "hooks": "0x0000000000000000000000000000000000000000",
      "blockNumber": "19500000"
    }
  ]
}
```

| Field          | Type           | Description                                                       |
| -------------- | -------------- | ----------------------------------------------------------------- |
| `poolId`       | string         | Pool identifier                                                   |
| `tick`         | number         | Current tick                                                      |
| `tickSpacing`  | string         | Tick spacing of the pool                                          |
| `sqrtPriceX96` | string         | Current price as a Q64.96 square root                             |
| `fee`          | number         | Pool fee tier                                                     |
| `currency0`    | string         | First currency address (the zero address denotes native currency) |
| `currency1`    | string         | Second currency address                                           |
| `hooks`        | string         | Hooks contract address (the zero address denotes no hooks)        |
| `blockNumber`  | string         | Block number the data was read at                                 |
| `parameters`   | string \| null | Encoded pool parameters. May be absent                            |
| `protocolFee`  | number \| null | Protocol fee. May be absent                                       |
| `positions`    | object\[]      | Liquidity positions for the pool. May be absent                   |

***

## PancakeSwap V4 Pools

Find PancakeSwap V4 pools for a token. Same parameters and response shape as Uniswap V4 Pools.

**Endpoint:** `/evm/pcs-v4/liquidity-pools`

**Example:**

<Tabs>
  <Tab title="Socket.IO">
    ```typescript theme={null}
    socket.emit("/evm/pcs-v4/liquidity-pools", {
      chain: "bsc",
      token: "0xTokenAddress",
    });
    ```
  </Tab>

  <Tab title="HTTP">
    ```typescript theme={null}
    await fetch("https://api.chainworks.co/evm/pcs-v4/liquidity-pools", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: CHAINWORKS_API_AUTH_TOKEN,
      },
      body: JSON.stringify({
        chain: "bsc",
        token: "0xTokenAddress",
      }),
    });
    ```
  </Tab>
</Tabs>
