curl --request GET \
--url https://api.anchorage-staging.com/v2/wallets \
--header 'Api-Access-Key: <api-key>'import requests
url = "https://api.anchorage-staging.com/v2/wallets"
headers = {"Api-Access-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'Api-Access-Key': '<api-key>'}};
fetch('https://api.anchorage-staging.com/v2/wallets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"walletId": "3d293c0d64c703023692216e9b4f5280",
"walletName": "Bitcoin Mainnet - Wallet 1",
"depositAddress": {
"address": "2N19AcihQ1a4MxQW658UFHTioUNnMkiHPkw",
"addressId": "a33f83d96ca95cac000a344aa478a8b8",
"addressSignaturePayload": "7b225465787441646472657373223a22324e313941636968513161344d78515736353855464854696f554e6e4d6b6948506b77227d",
"signature": "1642000aa9cca8e8610981aefbdb204b361c9dca3fa067b88fdacfba7a0f620d721378a33f4bbadad3923e633a4d712646d1e8e314e9fcb4aa4102c0581f6503"
},
"assets": [
{
"assetType": "BTC",
"availableBalance": {
"quantity": "10.00000000",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "97510.1"
},
"totalBalance": {
"quantity": "10.45234733",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "101920.94"
},
"stakedBalance": {
"quantity": "32.00000000",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "312032.32"
},
"unclaimedBalance": {
"quantity": "0",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "0"
},
"unvestedBalance": {
"quantity": "0",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "0"
},
"unvestedUnstakeableBalance": {
"quantity": "0",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "0"
}
}
],
"vaultId": "1c920f4241b78a1d483a29f3c24b6c4c",
"vaultName": "Long Hold Vault",
"isDefault": true,
"isArchived": false,
"networkId": "BTC",
"type": "WALLET"
},
{
"walletId": "8c4e2a7f19b35d60e7a1c9f4b2d68e03",
"walletName": "USD Wallet",
"depositInstruction": {
"memoField": "4827193650",
"bankName": "Example Bank",
"bankRoutingNumber": "123456789",
"bankAddress": "123 Main Street, Anytown, NY, US, 10001",
"bankSwiftCode": "EXBKUS33",
"beneficiaryName": "Example Org LLC",
"beneficiaryAddress": "456 Market Street, Suite 200, Springfield, IL, US, 62701",
"beneficiaryAccountNumber": "9876543210"
},
"assets": [
{
"assetType": "USD",
"availableBalance": {
"quantity": "125000.25",
"assetType": "USD",
"currentPrice": "1",
"currentUSDValue": "125000.25"
},
"totalBalance": {
"quantity": "150000.25",
"assetType": "USD",
"currentPrice": "1",
"currentUSDValue": "150000.25"
}
}
],
"vaultId": "1c920f4241b78a1d483a29f3c24b6c4c",
"vaultName": "Long Hold Vault",
"isDefault": true,
"isArchived": false,
"networkId": "USD",
"type": "WALLET"
}
],
"page": {
"next": null
}
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}List all wallets for all vaults
Permissions required: Read vault activity
List wallet metadata for the current user.
curl --request GET \
--url https://api.anchorage-staging.com/v2/wallets \
--header 'Api-Access-Key: <api-key>'import requests
url = "https://api.anchorage-staging.com/v2/wallets"
headers = {"Api-Access-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'Api-Access-Key': '<api-key>'}};
fetch('https://api.anchorage-staging.com/v2/wallets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"walletId": "3d293c0d64c703023692216e9b4f5280",
"walletName": "Bitcoin Mainnet - Wallet 1",
"depositAddress": {
"address": "2N19AcihQ1a4MxQW658UFHTioUNnMkiHPkw",
"addressId": "a33f83d96ca95cac000a344aa478a8b8",
"addressSignaturePayload": "7b225465787441646472657373223a22324e313941636968513161344d78515736353855464854696f554e6e4d6b6948506b77227d",
"signature": "1642000aa9cca8e8610981aefbdb204b361c9dca3fa067b88fdacfba7a0f620d721378a33f4bbadad3923e633a4d712646d1e8e314e9fcb4aa4102c0581f6503"
},
"assets": [
{
"assetType": "BTC",
"availableBalance": {
"quantity": "10.00000000",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "97510.1"
},
"totalBalance": {
"quantity": "10.45234733",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "101920.94"
},
"stakedBalance": {
"quantity": "32.00000000",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "312032.32"
},
"unclaimedBalance": {
"quantity": "0",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "0"
},
"unvestedBalance": {
"quantity": "0",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "0"
},
"unvestedUnstakeableBalance": {
"quantity": "0",
"assetType": "BTC",
"currentPrice": "9751.01",
"currentUSDValue": "0"
}
}
],
"vaultId": "1c920f4241b78a1d483a29f3c24b6c4c",
"vaultName": "Long Hold Vault",
"isDefault": true,
"isArchived": false,
"networkId": "BTC",
"type": "WALLET"
},
{
"walletId": "8c4e2a7f19b35d60e7a1c9f4b2d68e03",
"walletName": "USD Wallet",
"depositInstruction": {
"memoField": "4827193650",
"bankName": "Example Bank",
"bankRoutingNumber": "123456789",
"bankAddress": "123 Main Street, Anytown, NY, US, 10001",
"bankSwiftCode": "EXBKUS33",
"beneficiaryName": "Example Org LLC",
"beneficiaryAddress": "456 Market Street, Suite 200, Springfield, IL, US, 62701",
"beneficiaryAccountNumber": "9876543210"
},
"assets": [
{
"assetType": "USD",
"availableBalance": {
"quantity": "125000.25",
"assetType": "USD",
"currentPrice": "1",
"currentUSDValue": "125000.25"
},
"totalBalance": {
"quantity": "150000.25",
"assetType": "USD",
"currentPrice": "1",
"currentUSDValue": "150000.25"
}
}
],
"vaultId": "1c920f4241b78a1d483a29f3c24b6c4c",
"vaultName": "Long Hold Vault",
"isDefault": true,
"isArchived": false,
"networkId": "USD",
"type": "WALLET"
}
],
"page": {
"next": null
}
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}{
"errorType": "InternalError",
"message": "Missing required field 'amount'."
}Authorizations
An API key associated with a security role
Query Parameters
When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)
If subaccountIds filter is present, only wallets linked to those subaccountIds will be returned.
If set, only wallets for this Network ID will be returned
If set, only wallets for this Asset Type ID will be returned
Maximum number of results to return per query
1 <= x <= 100Filter 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.
Search wallets based on addresses in this wallet. The search length should be at least 3 characters.
3Result 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.
default, balance Direction for the sortBy ordering. Defaults to desc (largest first) when sortBy is balance, and to asc for the default wallet-ID ordering.
asc, desc 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.
41^[0-9]{1,20}(\.[0-9]{1,20})?$Was this page helpful?