# Wallets

Source: https://www.solscanner.app/docs/indexer/reference/wallets

> Holdings, portfolio, positions and PnL, trades, transfers, transactions, activity and the funding graph.

Everything keyed by a wallet address. Balances are the running signed sum of decoded transfers rather than `balanceOf` calls, so a holdings row exists only while the balance is non-zero. Routes whose coverage is partial say so on every response.

18 routes. Every path below is served under `/index/v1/{chain}`, and every request carries an `x-api-key` header, so those two are not repeated per route. The shared contract for pagination, snapshots, precision and absence is in [Read API](/docs/indexer/api).

Wallet Activity [#wallet-activity]

```http
GET /wallets/{address}/activity
```

Unified feed merging transactions, transfers and swaps into parent entries with typed child events.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Assets [#wallet-assets]

```http
GET /wallets/{address}/assets
```

What the wallet currently holds. A row exists only while the balance is non-zero, so this is holdings, not ever-held. `sort=token` (default) walks interned token-id order (`asc`/`desc`). `sort=usd` ranks by `balanceUsd.value` descending with unpriced rows last (token-id order, reason on `balanceUsd.reason`); `sort=balance` ranks by raw smallest-unit balance descending (a quantity order across different decimals, not a value order). Both ranked sorts are descending only, read at most `sortBudget` (500) assets, and set `sortTruncated: true` when the wallet holds more: the ranking then covers the first 500 by token id and says so. Ranked paging uses a `(class, key, tokenId)` cursor and is exact within one ranking. `limit` 1..=100.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Cohorts [#wallet-cohorts]

```http
GET /wallets/{address}/cohorts
```

Cohorts this wallet belongs to. `Funding` memberships a current entity override screens out are dropped and listed in `screened`/`screenedOut`.

| Parameter | In    | Required | Notes                                                                                                                                      |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                           |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                   |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema. |

Wallet First Seen [#wallet-first-seen]

```http
GET /wallets/{address}/first-seen
```

When the wallet was first observed.

| Parameter | In   | Required | Notes                            |
| --------- | ---- | -------- | -------------------------------- |
| `address` | path | yes      | 0x-prefixed 20-byte hex address. |

Wallet Funded By [#wallet-funded-by]

```http
GET /wallets/{address}/funded-by
```

Earliest incoming value transfer per asset, and who sent it.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Funded By All [#wallet-funded-by-all]

```http
GET /wallets/{address}/funded-by-all
```

Every funder edge rather than only the earliest.

| Parameter | In   | Required | Notes                            |
| --------- | ---- | -------- | -------------------------------- |
| `address` | path | yes      | 0x-prefixed 20-byte hex address. |

Wallet Funded Siblings [#wallet-funded-siblings]

```http
GET /wallets/{address}/funded-siblings
```

Wallets sharing a funder with this one.

| Parameter | In   | Required | Notes                            |
| --------- | ---- | -------- | -------------------------------- |
| `address` | path | yes      | 0x-prefixed 20-byte hex address. |

Wallet Funder Of [#wallet-funder-of]

```http
GET /wallets/{address}/funder-of
```

The reverse edge: everything this wallet funded.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Internal Transfers [#wallet-internal-transfers]

```http
GET /wallets/{address}/internal
```

Internal value transfers and contract creations the address took part in.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Overview [#wallet-overview]

```http
GET /wallets/{address}/overview
```

First-paint composite for a wallet. Bounded aggregate, not a page. `cohortsComplete`/`cohortsIncompleteReason`/`fundingGeneration` qualify the embedded cohort list.

| Parameter | In   | Required | Notes                            |
| --------- | ---- | -------- | -------------------------------- |
| `address` | path | yes      | 0x-prefixed 20-byte hex address. |

Wallet PnL [#wallet-pnl]

```http
GET /wallets/{address}/pnl
```

Bounded PnL aggregate that publishes its own scan bounds and completeness rather than paginating.

| Parameter | In   | Required | Notes                            |
| --------- | ---- | -------- | -------------------------------- |
| `address` | path | yes      | 0x-prefixed 20-byte hex address. |

Wallet Token PnL [#wallet-token-pnl]

```http
GET /wallets/{address}/pnl/{token}
```

PnL detail for a single token.

| Parameter | In   | Required | Notes                            |
| --------- | ---- | -------- | -------------------------------- |
| `address` | path | yes      | 0x-prefixed 20-byte hex address. |
| `token`   | path | yes      | 0x-prefixed 20-byte hex address. |

Wallet PnL Daily [#wallet-pnl-daily]

```http
GET /wallets/{address}/pnl/daily
```

Daily realised series for one `(token, quote)` pair.

| Parameter  | In    | Required | Notes                                                                                                                                                                                                                           |
| ---------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address`  | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `token`    | query | yes      | `token` and `quote` are required. A daily series is always scoped to one `(token, quote)` pair; a wallet-wide series across every token is not served by this route.                                                            |
| `quote`    | query | yes      | `token` and `quote` are required. A daily series is always scoped to one `(token, quote)` pair; a wallet-wide series across every token is not served by this route.                                                            |
| `from_day` | query | no       | Inclusive lower bound on `day` (a UTC day index, not a timestamp: see the response's own `day`/`dayStartUnix`). Defaults to no floor.                                                                                           |
| `to_day`   | query | no       | Inclusive upper bound on `day`. Defaults to no ceiling.                                                                                                                                                                         |
| `cursor`   | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`    | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`    | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Portfolio [#wallet-portfolio]

```http
GET /wallets/{address}/portfolio
```

Net worth with coverage: what could be marked, what could not and why, and the basis split. Inclusion predicates are caller-chosen.

| Parameter   | In    | Required | Notes                                                                                                                                                                                               |
| ----------- | ----- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address`   | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                    |
| `predicate` | query | no       | Which published inclusion predicate produced the total: `all` (default), `liquid`, `verified_contracts`, or `no_privileged_action_observed`. An unrecognized name is refused rather than defaulted. |

Wallet Positions [#wallet-positions]

```http
GET /wallets/{address}/positions
```

Per-token WAC positions with realised and unrealised components, paged by token.

| Parameter       | In    | Required | Notes                                                                                                                                                                                                                                             |
| --------------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address`       | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                                  |
| `cursor`        | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                                          |
| `limit`         | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                                        |
| `order`         | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract.                   |
| `hide_small`    | query | no       | Decimal token-smallest-unit threshold; a non-negative row below it is dropped.                                                                                                                                                                    |
| `sellout`       | query | no       | Optional holdings filters. `hide_small` drops rows below the given smallest-unit threshold; `sellout` and `hide_abnormal` drop fully exited and anomalous rows. Filters never change paging: the cursor walks the same underlying set either way. |
| `hide_abnormal` | query | no       | Optional holdings filters. `hide_small` drops rows below the given smallest-unit threshold; `sellout` and `hide_abnormal` drop fully exited and anomalous rows. Filters never change paging: the cursor walks the same underlying set either way. |
| `sort`          | query | no       | Accepted as a name but always refused: this route's ordering is fixed and cannot be re-sorted.                                                                                                                                                    |

Wallet Trades [#wallet-trades]

```http
GET /wallets/{address}/trades
```

Wallet swap history. The wallet is the transaction origin, never the router recipient. `quote.decimals` falls back to the strict token-metadata observation when the pool-quote row never resolved it; `quote.decimalsProvenance` names the source.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Transactions [#wallet-transactions]

```http
GET /wallets/{address}/transactions
```

Top-level transactions where the wallet is origin or recipient, merged and deduplicated.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |

Wallet Transfers [#wallet-transfers]

```http
GET /wallets/{address}/transfers
```

Direction-aware transfer history. Native rows carry a reserved asset kind rather than a zero address.

| Parameter | In    | Required | Notes                                                                                                                                                                                                                           |
| --------- | ----- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address` | path  | yes      | 0x-prefixed 20-byte hex address.                                                                                                                                                                                                |
| `cursor`  | query | no       | Opaque page cursor. See [Pagination](/docs/indexer/api).                                                                                                                                                                        |
| `limit`   | query | no       | Page row cap. See [Pagination](/docs/indexer/api) for the shared contract; the exact default and maximum for this route are on the schema.                                                                                      |
| `order`   | query | no       | Sort direction: this route's accepted values and default are on the schema (`enum`/`default`); a route whose backing index has no reverse walk accepts only `asc`. See [Pagination](/docs/indexer/api) for the shared contract. |
