> ## 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.

# EventData

> Discriminated union of per-event payloads on Event.data. Switch on __typename to read variant-specific fields.

### TypeScript shape

```ts theme={null}
type EventData = BurnEventData | MintEventData | SwapEventData | PoolBalanceChangedEventData;
```

`EventData` is a GraphQL union with seven variants. The `__typename` field identifies the variant:

<ResponseField name="SwapEventData" type="union">A trade. See [SwapEventData](/api-reference/graphql/types/SwapEventData).</ResponseField>
<ResponseField name="MintEventData" type="union">An LP add. See [MintEventData](/api-reference/graphql/types/MintEventData).</ResponseField>
<ResponseField name="BurnEventData" type="union">An LP remove. See [BurnEventData](/api-reference/graphql/types/BurnEventData).</ResponseField>
<ResponseField name="SyncEventData" type="union">V2 reserve sync. See [SyncEventData](/api-reference/graphql/types/SyncEventData).</ResponseField>
<ResponseField name="CollectEventData" type="union">V3 fee collection. See [CollectEventData](/api-reference/graphql/types/CollectEventData).</ResponseField>
<ResponseField name="CollectProtocolEventData" type="union">V3 protocol fee collection. See [CollectProtocolEventData](/api-reference/graphql/types/CollectProtocolEventData).</ResponseField>
<ResponseField name="PoolBalanceChangedEventData" type="union">Balancer V2 / Uniswap V4 pool rebalance. See [PoolBalanceChangedEventData](/api-reference/graphql/types/PoolBalanceChangedEventData).</ResponseField>

### Usage

```graphql theme={null}
data {
  __typename
  ... on SwapEventData { priceUsd priceUsdTotal amountNonLiquidityToken }
  ... on MintEventData { amount0 amount1 }
  ... on BurnEventData { amount0 amount1 }
  ... on PoolBalanceChangedEventData { sender amount0 amount1 protocolFeeAmount0 protocolFeeAmount1 }
}
```

`getTokenEvents` returns `Swap` / `Mint` / `Burn` / `PoolBalanceChanged` payloads. `Sync` / `Collect` / `CollectProtocol` are short-circuited to empty by the query (Codex contract).
