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

# PoolBalanceChangedEventData

> Payload for an Event with eventType=PoolBalanceChanged — Balancer V2 / Uniswap V4 multi-asset pool rebalance.

### TypeScript shape

```ts theme={null}
interface PoolBalanceChangedEventData {
  amount0: string | null;
  amount1: string | null;
  amount0Shifted: string | null;
  amount1Shifted: string | null;
  token0: string | null;
  token1: string | null;
  sender: string | null;
  protocolFeeAmount0: string | null;
  protocolFeeAmount1: string | null;
  liquidity0: string | null;
  liquidity1: string | null;
  type: EventType;
}
```

<ResponseField name="__typename" type="String!">Always `"PoolBalanceChangedEventData"`.</ResponseField>
<ResponseField name="type" type="EventType!">Always `PoolBalanceChanged`.</ResponseField>
<ResponseField name="sender" type="String">Liquidity provider address.</ResponseField>
<ResponseField name="token0" type="String">First token of the (collapsed) two-token view.</ResponseField>
<ResponseField name="token1" type="String">Second token. N>2-asset Balancer events are collapsed to (token0, token1).</ResponseField>
<ResponseField name="amount0" type="String">Signed delta for token0.</ResponseField>
<ResponseField name="amount1" type="String">Signed delta for token1.</ResponseField>
<ResponseField name="amount0Shifted" type="String">Decimal-shifted delta for token0. Null on the historical path.</ResponseField>
<ResponseField name="amount1Shifted" type="String">Decimal-shifted delta for token1. Null on the historical path.</ResponseField>
<ResponseField name="protocolFeeAmount0" type="String">Protocol fee taken in token0.</ResponseField>
<ResponseField name="protocolFeeAmount1" type="String">Protocol fee taken in token1.</ResponseField>
<ResponseField name="liquidity0" type="String">Pool liquidity for token0 after the event. Null on the historical path.</ResponseField>
<ResponseField name="liquidity1" type="String">Pool liquidity for token1 after the event. Null on the historical path.</ResponseField>
