Skip to main content
GET
List all wallets for all vaults

Authorizations

Api-Access-Key
string
header
required

An API key associated with a security role

Query Parameters

afterId
string

When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)

subaccountIds
string[]

If subaccountIds filter is present, only wallets linked to those subaccountIds will be returned.

networkId
string

If set, only wallets for this Network ID will be returned

assetType
string

If set, only wallets for this Asset Type ID will be returned

limit
integer<int64>
default:25

Maximum number of results to return per query

Required range: 1 <= x <= 100
filterByIsArchived
boolean

Filter by the whether a wallet is archived. If true, then only archived wallets will be returned. If false, then only not-archived wallets are returned. If not specified, then all wallets are returned.

searchByAddress
string

Search wallets based on addresses in this wallet. The search length should be at least 3 characters.

Minimum string length: 3
sortBy
enum<string>
default:default

Result ordering. default (or omitting this parameter) preserves the standard ordering by wallet ID. balance orders wallets by their total current USD value: the sum of totalBalance.currentUSDValue across the wallet's assets, using the same point-in-time pricing methodology (and disclaimers) as currentUSDValue. An asset with no current USD price contributes zero to its wallet's ordering value rather than failing the request; the asset details in the response are still priced strictly, so a page that renders such an asset fails the way it does today. A wallet with no active assets sorts as zero. Ties are broken by wallet ID, ascending.

Balance ordering is not a fixed snapshot. The balances it is computed from are held in a per-organization snapshot that is reused for up to 30 seconds and refreshed by the next request after that, and prices are looked up per request but may be served from a cache of up to five minutes, so a wallet may move across page boundaries while paginating. Filters (networkId, assetType, subaccountIds, filterByIsArchived, searchByAddress) are applied before sorting.

Available options:
default,
balance
sortDirection
enum<string>

Direction for the sortBy ordering. Defaults to desc (largest first) when sortBy is balance, and to asc for the default wallet-ID ordering.

Available options:
asc,
desc
minUsdValue
string

If set, only wallets whose total USD value is strictly greater than this amount will be returned. A plain, non-negative decimal string such as "0" or "10.50": up to 20 digits before the decimal point and up to 20 after it, with no sign, exponent, or thousands separators. Any other format is rejected with a 400. An empty value (minUsdValue=) is allowed and treated as if the parameter were omitted.

Total USD value is the wallet's total holdings across every active asset. Each asset is valued at the largest of three readings of the same holdings: its totalBalance.currentUSDValue; the sum of its availableBalance, the funds under custody holds that were subtracted to arrive at availableBalance (AML, pending-operation, API-placed, vesting, and similar holds, which the response does not itemize), stakedBalance, and unclaimedBalance; and its total rebuilt from the raw balance components the asset's network defines as making up the total, with those same held funds restored. The third reading counts components the response does not render at all, such as tokens that are unbonding on a Tendermint-like network, which are part of the total but appear in neither stakedBalance nor unclaimedBalance. Taking the largest reading means staked, locked, unbonding, or held funds count whether or not the balance source folds them into totalBalance, and a funded wallet whose every unit is under a hold is never valued at zero. An asset may be over-counted where a hold also appears in a staking bucket or where a source folds only part of a bucket into totalBalance, but it is never under-counted. unvestedBalance and unvestedUnstakeableBalance are views of vesting holds already counted and are never added on top.

The comparison uses each holding's unrounded value (quantity multiplied by price). The currentUSDValue figures in the response are rounded to cents, so a wallet whose rendered values add up to exactly the threshold can still be returned when its unrounded total is above it, and sub-cent holdings accumulate rather than each counting as zero.

minUsdValue=0 excludes wallets that hold nothing: never-funded wallets and wallets drained to zero. A wallet holding any nonzero quantity of any asset is kept even when its USD value is zero, for example a zero-priced asset. Any positive value additionally hides dust by USD value.

This value is computed live, from the same balance and price data the response's own asset details use — it is not a cached or periodically-refreshed snapshot, so it can change between requests as balances and prices move, and a wallet may shift across page boundaries while paginating with this filter applied. Every wallet that passes the request's other filters (networkId, assetType, subaccountIds, searchByAddress, filterByIsArchived, and the caller's vault permissions) is valued before pagination, so request latency scales with the size of that candidate set rather than the page size, and a missing price for any active asset held by a candidate wallet fails the request with a 500 whose message says that a price is unavailable, so the caller can retry later or omit the filter. Organizations with balance tracking disabled receive a 400.

Maximum string length: 41
Pattern: ^[0-9]{1,20}(\.[0-9]{1,20})?$

Response

List of wallets for this vault

data
WalletDetails · object[]
required
page
Page · object
required

Pagination info