---
title: "Get all current positions for a wallet"
method: GET
path: "/v1/users/{wallet_address}/positions"
tags: ["Users"]
---

# Get all current positions for a wallet

`GET /v1/users/{wallet_address}/positions`

Returns every vault position the wallet currently holds or has pending exposure in (pending deposit or redeem). Fully-exited positions (zero shares, no pending escrow) are excluded.

All monetary metrics include a `usd` field (null when pricing is unavailable). `value.usd` and `pending_deposit_assets.usd` use the current spot price. `cost_basis.usd` and `pnl.realized.usd` are computed by replaying on-chain events against the token's historical price series — the same method used by `GET /v1/users/{wallet}/positions/{vault_id}`. `pnl.unrealized.usd`, `pnl.total.usd`, and `roi_pct.usd` are derived from those.

Cursor-paginated on internal position ID. Default page size 100, max 500.

## Path parameters

- `wallet_address` string, required

## Query parameters

- `next` string
- `limit` integer

## Response `200`

All wallet positions

- UserAllPositionsResponse
  - `data` UserPosition[], required
    - `metrics` UserPositionMetrics, required
      - `cost_basis` AmountPair, required — Decimal-string metric paired across native (numeraire-token) and USD. `native` is always present; `usd` is JSON null when pricing is unavailable.
        - `native` string, required
        - `usd` string, nullable
      - `pending_deposit_assets` AmountPair, required — Decimal-string metric paired across native (numeraire-token) and USD. `native` is always present; `usd` is JSON null when pricing is unavailable.
        - `native` string, required
        - `usd` string, nullable
      - `pending_redeem_shares` string, required — Shares escrowed at the Aera Provisioner pending asset return.
      - `pnl` PnlBreakdown, required
        - `realized` AmountPair, required — Decimal-string metric paired across native (numeraire-token) and USD. `native` is always present; `usd` is JSON null when pricing is unavailable.
          - `native` string, required
          - `usd` string, nullable
        - `total` AmountPair, required — Decimal-string metric paired across native (numeraire-token) and USD. `native` is always present; `usd` is JSON null when pricing is unavailable.
          - `native` string, required
          - `usd` string, nullable
        - `unrealized` AmountPair, required — Decimal-string metric paired across native (numeraire-token) and USD. `native` is always present; `usd` is JSON null when pricing is unavailable.
          - `native` string, required
          - `usd` string, nullable
      - `roi_pct` RatioPair, required — JSON-number ratio paired across native (in-kind) and USD denominations. Null when event history is unavailable or cannot support ROI replay.
        - `native` number, double, nullable
        - `usd` number, double, nullable
      - `shares_owned` string, required — Shares currently held by the wallet.
      - `value` AmountPair, required — Decimal-string metric paired across native (numeraire-token) and USD. `native` is always present; `usd` is JSON null when pricing is unavailable.
        - `native` string, required
        - `usd` string, nullable
    - `vault_id` string, required
    - `wallet_address` string, required
  - `meta` TimeseriesMeta, required
    - `count` integer, required — Number of points in this response.
    - `end` string, date-time, nullable
    - `limit` integer, required — Page-size cap actually applied.
    - `next_cursor` string, nullable — Set when more pages exist; pass back as `?next=`.
    - `refreshed_at` string, date-time, required
    - `request_id` string, required
    - `start` string, date-time, nullable — Window bounds the response covers (echoes the request when set).

## Other responses

- `401` — Missing or invalid auth
- `422` — Invalid cursor

---

[API](https://skmtc.net/gauntlet/apis/gauntlet-api.md) · [All operations](https://skmtc.net/gauntlet/apis/gauntlet-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gauntlet/gauntlet-api/versions/bd6a0a40d4fc/schema)
