> ## 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 strategy deposits and redemptions

> Retrieve a wallet’s deposits and redemptions in one managed vault.

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="address" type="string" required>
  Solana account address.
</ParamField>

## Query parameters

<ParamField query="walletPubkey" type="string" required>
  User wallet address.
</ParamField>

<RequestExample dropdown>
  ```bash cURL theme={null}
  curl 'https://api.exponent.finance/strategies/managed/puiRBGikahXM4C7weFtNRFcs7bSUx8wVn1m5v6RA91o/user-activity?walletPubkey=FPUqspsUG5ZudHfi1dPhp8DSYjU5nZCGXzqw9EdzZEGV'
  ```

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

  response = requests.get("https://api.exponent.finance/strategies/managed/puiRBGikahXM4C7weFtNRFcs7bSUx8wVn1m5v6RA91o/user-activity?walletPubkey=FPUqspsUG5ZudHfi1dPhp8DSYjU5nZCGXzqw9EdzZEGV", timeout=30)
  response.raise_for_status()
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.exponent.finance/strategies/managed/puiRBGikahXM4C7weFtNRFcs7bSUx8wVn1m5v6RA91o/user-activity?walletPubkey=FPUqspsUG5ZudHfi1dPhp8DSYjU5nZCGXzqw9EdzZEGV");
  if (!response.ok) {
    throw new Error(`Request failed: ${response.status}`);
  }
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ApiResponse errors={{"400": {"error": "<message>"}, "500": {"error": "<message>"}}}>
  <ResponseField name="id" type="string">
    String form of the indexed strategy-trade ID.
  </ResponseField>

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

  <ResponseField name="timestamp" type="number">
    Activity time in Unix seconds.
  </ResponseField>

  <ResponseField name="type" type="'Deposit' | 'Redeem' | 'Instant Redeem'">
    `Deposit`, `Instant Redeem`, or `Redeem`.
  </ResponseField>

  <ResponseField name="lpAmount" type="number">
    LP quantity deposited or redeemed in human-readable LP-token units.
  </ResponseField>

  <ResponseField name="lpAmountUSD" type="number">
    USD value of the deposited or redeemed base-asset amount.
  </ResponseField>

  <ResponseField name="lpPrice" type="number">
    Base-asset price per LP token after adjusting for token decimals.
  </ResponseField>

  <ResponseField name="lpMint" type="string">
    Strategy LP token mint address.
  </ResponseField>

  <ResponseField name="tokenFlows" type="object[]">
    Input and output token movements associated with the activity.

    <Expandable title="child attributes">
      <ResponseField name="tokenFlows[].mint" type="string">
        Solana mint address identifying the token.
      </ResponseField>

      <ResponseField name="tokenFlows[].tokenAmount" type="number">
        Raw quantity of the primary token flow; omitted when no flow is available.
      </ResponseField>

      <ResponseField name="tokenFlows[].direction" type="'in' | 'out'">
        `in` for a deposit into the vault or `out` for a redemption.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="tokenAmount" type="number">
    Raw quantity of the primary token flow; omitted when no flow is available.
  </ResponseField>

  <ResponseField name="tokenMint" type="string">
    Mint of the primary token flow; omitted when no flow is available.
  </ResponseField>
</ApiResponse>

<ResponseExample>
  ```json 200 theme={null}
  [
    {
      "id": "3519",
      "signature": "SUycDNFvYssJoY8t5sdrNmu53chXT2qi3ngFp3fUGnYnjBefnUBpGNpfY4F6sVxZpGQxwdKZZuMsFfNqe8E9SX9",
      "timestamp": 1785470564,
      "type": "Redeem",
      "lpAmount": 1.008707398,
      "lpAmountUSD": 77.42580202728628,
      "lpPrice": 1.0370002887249166,
      "lpMint": "D2LwjwZnpgKhCePJNJU63QBmVg5h6nDxGnMgStXJsRC1",
      "tokenFlows": [
        {
          "mint": "rkubjTrZYioRSeXwDnhwGQzvW3qkcin72JSxUt3WMVp",
          "tokenAmount": 1035373843,
          "direction": "out"
        }
      ],
      "tokenAmount": 1035373843,
      "tokenMint": "rkubjTrZYioRSeXwDnhwGQzvW3qkcin72JSxUt3WMVp"
    },
    {
      "id": "3334",
      "signature": "4PF7zvkcf7a5onTsqzfkykpqVb42rWnTCuMsaRRkRUGFSjZ2wxpLR2i1XfkPuSqZDNNJq7Z54b5u5uHjezq8ST6c",
      "timestamp": 1784890193,
      "type": "Deposit",
      "lpAmount": 0.177633551,
      "lpAmountUSD": 13.88680093820318,
      "lpPrice": 1.0355409603898533,
      "lpMint": "D2LwjwZnpgKhCePJNJU63QBmVg5h6nDxGnMgStXJsRC1",
      "tokenFlows": [
        {
          "mint": "rkubjTrZYioRSeXwDnhwGQzvW3qkcin72JSxUt3WMVp",
          "tokenAmount": 182233886,
          "direction": "in"
        }
      ],
      "tokenAmount": 182233886,
      "tokenMint": "rkubjTrZYioRSeXwDnhwGQzvW3qkcin72JSxUt3WMVp"
    }
  ]
  ```

  ```json 400 theme={null}
  {
    "error": "<message>"
  }
  ```

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


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