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

# ProtocolData

> Union of protocol-specific pair data. Custom data for the pair; only certain protocols have this (e.g. uniswapv4, arenatrade, pump).

### TypeScript shape

```ts theme={null}
type ProtocolData = UniswapV4Data | ArenaTradeData | PumpData;
```

This union can be one of the following types (see **Object Types** for full field definitions):

* [**UniswapV4Data**](/api-reference/graphql/types/UniswapV4Data) — Uniswap V4 pools (hook address, native token flag, dynamic fee).
* [**ArenaTradeData**](/api-reference/graphql/types/ArenaTradeData) — Arena Trade pairs (token ID).
* [**PumpData**](/api-reference/graphql/types/PumpData) — Pump.fun pairs (creator address).

Use fragments in your query to request fields from a specific member:

```graphql theme={null}
pair {
  address
  protocolData {
    ... on UniswapV4Data {
      uniswapV4HookAddress
      isToken0NetworkToken
      isDynamicFee
      type
    }
    ... on ArenaTradeData {
      tokenId
      type
    }
    ... on PumpData {
      creator
      type
    }
  }
}
```
