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

# Wallet CLMM deposits and withdrawals

> Retrieve indexed CLMM LP deposits and withdrawals.

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 by CLMM market when `vault` is omitted.
</ParamField>

<ParamField query="vault" type="string">
  Filter by vault. Takes precedence over `market` and `lp_position`.
</ParamField>

<ParamField query="lp_position" type="string">
  Filter by LP position when `vault` is omitted.
</ParamField>

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

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

  response = requests.get("https://api.exponent.finance/trades/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/trades/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>"}}}>
  <ResponseField name="amount_pt" type="string">
    PT quantity associated with the activity, in raw token units.
  </ResponseField>

  <ResponseField name="amount_pt_received" type="number">
    PT received by the liquidity operation, in raw PT units.
  </ResponseField>

  <ResponseField name="amount_sy" type="string">
    SY quantity associated with the activity, in raw token units.
  </ResponseField>

  <ResponseField name="amount_yt_burned" type="number">
    YT burned by the liquidity operation, in raw YT units.
  </ResponseField>

  <ResponseField name="amount_yt_out" type="string | null">
    YT returned by the liquidity operation, in raw YT units.
  </ResponseField>

  <ResponseField name="asset_value_lp_in" type="number">
    Indexed base-asset valuation of LP liquidity supplied.
  </ResponseField>

  <ResponseField name="asset_value_lp_out" type="number">
    Indexed base-asset valuation of LP liquidity withdrawn.
  </ResponseField>

  <ResponseField name="asset_value_pt" type="string">
    Indexed base-asset valuation of the PT component.
  </ResponseField>

  <ResponseField name="asset_value_sy" type="string">
    Indexed base-asset valuation of the SY component.
  </ResponseField>

  <ResponseField name="asset_value_yt_out" type="number">
    Indexed base-asset valuation of YT returned by the operation.
  </ResponseField>

  <ResponseField name="average_cost_basis" type="number">
    Average acquisition cost of the remaining position.
  </ResponseField>

  <ResponseField name="base_amount" type="number">
    Base-asset quantity associated with the liquidity operation, in raw token units.
  </ResponseField>

  <ResponseField name="created_at" type="string">
    Time this record was created, in ISO 8601 format.
  </ResponseField>

  <ResponseField name="fee_pt_collected" type="number | null">
    PT fees collected by the operation, in raw PT units.
  </ResponseField>

  <ResponseField name="fee_sy_collected" type="number | null">
    SY fees collected by the operation, in raw SY units.
  </ResponseField>

  <ResponseField name="id" type="number">
    Indexed record identifier.
  </ResponseField>

  <ResponseField name="is_provide" type="boolean">
    True for adding liquidity; false for withdrawing liquidity.
  </ResponseField>

  <ResponseField name="lp_amount" type="number">
    Raw LP quantity added or removed by the liquidity operation.
  </ResponseField>

  <ResponseField name="lp_position_address" type="string | null">
    LP position account associated with the trade.
  </ResponseField>

  <ResponseField name="market_address" type="string">
    CLMM market associated with this record.
  </ResponseField>

  <ResponseField name="realized_pnl" type="number">
    Profit or loss realized by this trade.
  </ResponseField>

  <ResponseField name="sy_exchange_rate" type="number | null">
    Underlying asset value per SY token at the time of the event.
  </ResponseField>

  <ResponseField name="total_cost_basis" type="number">
    Accumulated cost basis of the remaining position.
  </ResponseField>

  <ResponseField name="total_lp_balance" type="number">
    Indexed raw LP balance after the trade.
  </ResponseField>

  <ResponseField name="total_realized_pnl" type="number">
    Cumulative realized profit or loss after this trade.
  </ResponseField>

  <ResponseField name="trade_ts" type="string">
    Indexed trade timestamp in ISO 8601 format.
  </ResponseField>

  <ResponseField name="tx_signature" type="string | null">
    Solana transaction signature for this activity.
  </ResponseField>

  <ResponseField name="type" type="string">
    Indexed CLMM liquidity-operation category.
  </ResponseField>

  <ResponseField name="user_address" type="string">
    Wallet to which this record belongs.
  </ResponseField>
</ApiResponse>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "id": 22977,
      "user_address": "HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4",
      "market_address": "6CFxKYZkRUDBcJSHo3PBHJ7iBiCmEXePrCFT26mZx1id",
      "is_provide": false,
      "lp_amount": 1747533,
      "base_amount": 44009,
      "total_lp_balance": 582511,
      "average_cost_basis": 0.04794445130735652,
      "realized_pnl": -7.024320346908244,
      "total_realized_pnl": -7.024320346908244,
      "tx_signature": "3ZbDneq93bQijuP2EdshJZKg91r9yNtreYxk2bRX4kiz3Ene8msrquVEMMBWqxpiFELXYKUWJwcjjWgTMZe3ehs7",
      "trade_ts": "2026-10-13T15:51:31+00:00",
      "created_at": "2026-10-13T15:51:31+00:00",
      "asset_value_lp_in": 0,
      "asset_value_lp_out": 83777.48650615176,
      "asset_value_yt_out": 0,
      "total_cost_basis": 27928.170275499553,
      "lp_position_address": "9CxhgcwkK7HFTZP93aPJNbHVW5cK1nwdGKt5s3Ge8SPo",
      "amount_pt": "41381",
      "amount_sy": "39346",
      "asset_value_pt": "39768.313148522846",
      "asset_value_sy": "44009.17335762891",
      "amount_yt_out": "0",
      "sy_exchange_rate": 1.1185170076953819,
      "type": "classic",
      "fee_sy_collected": 0,
      "fee_pt_collected": 0,
      "amount_yt_burned": 41300,
      "amount_pt_received": 81
    },
    {
      "id": 22976,
      "user_address": "HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4",
      "market_address": "6CFxKYZkRUDBcJSHo3PBHJ7iBiCmEXePrCFT26mZx1id",
      "is_provide": false,
      "lp_amount": 67767792,
      "base_amount": 85962,
      "total_lp_balance": 3320621833,
      "average_cost_basis": 0.009612897072766132,
      "realized_pnl": -199.86202493484265,
      "total_realized_pnl": -199.86202493484265,
      "tx_signature": "uLKvTc573D9xgDhFcesCkKsiKAgSD81yv2tUwQJtvGZEVH3GFt9mvTWm3DkuYbMJsTuXCBDBTvLgiFBUQT4oByF",
      "trade_ts": "2026-10-13T15:51:06+00:00",
      "created_at": "2026-10-13T15:51:06+00:00",
      "asset_value_lp_in": 0,
      "asset_value_lp_out": 651244.9473196893,
      "asset_value_yt_out": 0,
      "total_cost_basis": 31920795.89820901,
      "lp_position_address": "7dgfQy9MUdJV4R3JLLnh3Msp8WGZAds95AU9kZwR4mmW",
      "amount_pt": "588285",
      "amount_sy": "76786",
      "asset_value_pt": "565358.500366821045",
      "asset_value_sy": "85886.44695286827",
      "amount_yt_out": "0",
      "sy_exchange_rate": 1.1185167560004814,
      "type": "classic",
      "fee_sy_collected": 68,
      "fee_pt_collected": 95,
      "amount_yt_burned": 0,
      "amount_pt_received": 588285
    }
  ]
  ```

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


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