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

# User CLMM LP balances

> Retrieve indexed CLMM LP balances for a wallet.

export const ApiResponse = ({children, errors = {}}) => {
  const [status, setStatus] = useState("200");
  const statuses = ["200", ...Object.keys(errors)];
  return <section className="api-response" aria-label="Response">
      <div className="api-response-header not-prose">
        <h2>Response</h2>
        <div className="api-response-format">
          {statuses.length > 1 ? <select aria-label="Response status" value={status} onChange={event => setStatus(event.target.value)}>
              {statuses.map(code => <option key={code} value={code}>{code}</option>)}
            </select> : <span>200</span>}
          <span className="api-response-mime">application/json</span>
        </div>
      </div>
      <div hidden={status !== "200"}>{children}</div>
      {status !== "200" && <div aria-live="polite">
          {Object.entries(errors[status]).map(([name, value]) => <ResponseField key={name} name={name} type={value === null ? "null" : Array.isArray(value) ? "array" : typeof value}>
              {name === "error" ? "Error message describing why the request failed." : "Additional error details."}
            </ResponseField>)}
        </div>}
    </section>;
};

## Path parameters

<ParamField path="userAddress" type="string" required>
  User wallet address.
</ParamField>

## Query parameters

<ParamField query="market" type="string">
  Filter to one market address.
</ParamField>

<RequestExample dropdown>
  ```bash cURL theme={null}
  curl https://api.exponent.finance/balances/user/clmm-lp/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4
  ```

  ```python Python theme={null}
  import requests

  response = requests.get("https://api.exponent.finance/balances/user/clmm-lp/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4", timeout=30)
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.exponent.finance/balances/user/clmm-lp/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4");
  if (!response.ok) {
    throw new Error(`Request failed: ${response.status}`);
  }
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ApiResponse errors={{"500": {"error": "<message>"}}} />

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "user_address": "HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4",
      "position_address": "4aJHwX5A6W4mESA5mw1FGfhAha1bZTmgJ59vEACje7Rp",
      "market_address": "81MVuWDao5T7TA8rsTsdeJpBKtKFrSC8peiceua5NdPe",
      "lp_balance": "2596087",
      "lower_tick": 50000,
      "upper_tick": 90000,
      "tokens_owed_sy": "0",
      "tokens_owed_pt": "0",
      "last_updated_at": "2026-10-14T00:05:11.272+00:00",
      "last_tx_signature": "2gJXNNKsyEkRPTH1hKfhqXbDtHmze1HLmkEyFeruoQ8Kd52yTUzbjwyCmi5r8KhoDrdDVd6KCxoaqSbQxXZPQJfH",
      "farms": [
        {
          "staged": "0",
          "lastSeenIndex": "0"
        },
        {
          "staged": "0",
          "lastSeenIndex": "0"
        }
      ],
      "share_trackers": [
        {
          "lpShare": "11855000000000000",
          "tickIdx": 3,
          "emissions": [
            {
              "staged": "0",
              "lastSeenIndex": "0"
            },
            {
              "staged": "0",
              "lastSeenIndex": "0"
            }
          ],
          "splitEpoch": "1",
          "rightTickIdx": 5
        },
        {
          "lpShare": "35608000000000000",
          "tickIdx": 1,
          "emissions": [
            {
              "staged": "0",
              "lastSeenIndex": "0"
            },
            {
              "staged": "0",
              "lastSeenIndex": "0"
            }
          ],
          "splitEpoch": "1",
          "rightTickIdx": 3
        }
      ],
      "fee_inside_last_pt": "281595279910802",
      "fee_inside_last_sy": "1052245568673",
      "sy_balance": "32806",
      "pt_balance": "69672",
      "needs_recalc": false,
      "recorded_at": "2026-10-12T13:21:02.207035+00:00",
      "recalc_attempts": 0,
      "recalc_last_attempt_at": null
    },
    {
      "user_address": "HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4",
      "position_address": "9CxhgcwkK7HFTZP93aPJNbHVW5cK1nwdGKt5s3Ge8SPo",
      "market_address": "6CFxKYZkRUDBcJSHo3PBHJ7iBiCmEXePrCFT26mZx1id",
      "lp_balance": "582511",
      "lower_tick": 90000,
      "upper_tick": 140000,
      "tokens_owed_sy": "0",
      "tokens_owed_pt": "0",
      "last_updated_at": "2026-10-13T15:51:31+00:00",
      "last_tx_signature": "3ZbDneq93bQijuP2EdshJZKg91r9yNtreYxk2bRX4kiz3Ene8msrquVEMMBWqxpiFELXYKUWJwcjjWgTMZe3ehs7",
      "farms": [
        {
          "staged": "0",
          "lastSeenIndex": "0"
        },
        {
          "staged": "0",
          "lastSeenIndex": "0"
        }
      ],
      "share_trackers": [
        {
          "lpShare": "2691000000000000",
          "tickIdx": 3,
          "emissions": [
            {
              "staged": "0",
              "lastSeenIndex": "0"
            },
            {
              "staged": "0",
              "lastSeenIndex": "0"
            }
          ],
          "splitEpoch": "0",
          "rightTickIdx": 2
        },
        {
          "lpShare": "2505500000000000",
          "tickIdx": 2,
          "emissions": [
            {
              "staged": "0",
              "lastSeenIndex": "0"
            },
            {
              "staged": "0",
              "lastSeenIndex": "0"
            }
          ],
          "splitEpoch": "1",
          "rightTickIdx": 8
        }
      ],
      "fee_inside_last_pt": "49569275219810",
      "fee_inside_last_sy": "188994489781915",
      "sy_balance": "13116",
      "pt_balance": "13792",
      "needs_recalc": false,
      "recorded_at": "2026-10-13T15:51:32.058652+00:00",
      "recalc_attempts": 0,
      "recalc_last_attempt_at": null
    }
  ]
  ```

  ```json 500 theme={null}
  {
    "error": "<message>"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.