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

# Latest PT trades by vault

> Retrieve the latest indexed PT trade for each vault held in a wallet’s trade history.

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>

<RequestExample dropdown>
  ```bash cURL theme={null}
  curl https://api.exponent.finance/positions/pt/user/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4
  ```

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

  response = requests.get("https://api.exponent.finance/positions/pt/user/HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4", timeout=30)
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.exponent.finance/positions/pt/user/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="average_cost_basis" type="number">
    Average acquisition cost of the remaining position.
  </ResponseField>

  <ResponseField name="avg_implied_yield" type="number">
    Average indexed implied yield across the position’s trades.
  </ResponseField>

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

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

  <ResponseField name="implied_yield" type="number">
    Indexed implied-yield value recorded for the execution.
  </ResponseField>

  <ResponseField name="in_amount" type="number">
    Raw input-token quantity spent by the execution.
  </ResponseField>

  <ResponseField name="is_buy" type="boolean">
    Whether the execution buys the PT or YT product rather than selling it.
  </ResponseField>

  <ResponseField name="out_amount" type="number">
    Raw output-token quantity received from the execution.
  </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_realized_pnl" type="number">
    Cumulative realized profit or loss after this trade.
  </ResponseField>

  <ResponseField name="total_size" type="number">
    Indexed net PT position size after the trade.
  </ResponseField>

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

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

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

  <ResponseField name="vault_address" type="string">
    Yield or strategy vault associated with this record.
  </ResponseField>

  <ResponseField name="venue" type="string">
    Execution venue recorded by the indexer.
  </ResponseField>
</ApiResponse>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "id": 260196,
      "user_address": "HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4",
      "vault_address": "7f1PgxY3kGsPqLAKpwcduZkcBEhpjMz7U1iJ4pcCCzDy",
      "is_buy": false,
      "in_amount": 249999941,
      "out_amount": 242718753.9116377,
      "venue": "orderbook market",
      "tx_signature": "2Q8aNaSojypq7j3hGbPKLZizLJ39vLsJq5gTUH75RTgjCLLYor8Q2qMVieJNzuqZK1tM5Kck5SYXdoiMoXrpLJWC",
      "trade_ts": "2026-10-13T17:00:12+00:00",
      "created_at": "2026-10-13T17:00:13.057965+00:00",
      "total_size": 118908455,
      "average_cost_basis": 0.9713035643992205,
      "realized_pnl": -107079.8812571117,
      "total_realized_pnl": -302733.48829296196,
      "implied_yield": 12.912811696872422,
      "avg_implied_yield": 12.699655988000403,
      "sy_exchange_rate": 1.155177212
    },
    {
      "id": 260060,
      "user_address": "HRt73vbP87cUmzJJAH5tWyCuwyN9Syws2RxqND9pTMs4",
      "vault_address": "ALknfAXDkdbif7DaiRZnnzCBpwuSHW44i7AsbNL7qmj8",
      "is_buy": true,
      "in_amount": 69101.33169397988,
      "out_amount": 70462,
      "venue": "clmm_classic",
      "tx_signature": "52iziMBizXFG1NvWxQtnrn3CiWhqAXTwKpChT3J5cDWePK5z8RUMBgR2J1Q3TEVHqhx1iFyohgohwwqeiEDyEBJ2",
      "trade_ts": "2026-10-12T13:24:55+00:00",
      "created_at": "2026-10-12T13:24:56.065351+00:00",
      "total_size": 35209403,
      "average_cost_basis": 0.984756166488342,
      "realized_pnl": 0,
      "total_realized_pnl": 0,
      "implied_yield": 7.8780411703001345,
      "avg_implied_yield": 6.155536447818755,
      "sy_exchange_rate": 1.020444862
    }
  ]
  ```

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


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