Wallets
Wallet balance lookups, token holdings, NFT/SBT items, related-wallet graphs, and existence checks.
Wallet Balance
GET
/v1/wallets?requestType=balanceRetrieve token balances for a wallet. Supports filtering by symbol, type, and text search.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| requestType | string | REQUIRED | — | Must be `balance` |
| address | string | REQUIRED | — | Wallet address |
| offset | int | optional | 0 | Pagination offset |
| limit | int | optional | 100 | Results per page |
| symbol | string | optional | — | Filter by contract ID(s), comma-separated |
| filter | string | optional | — | Set to "items" for NFT/SBT items |
| searchTerm | string | optional | — | Free-text search against name/symbol |
| sort | string | optional | — | Sort order |
| includeSpam | boolean | optional | false | Set to true to include tokens classified as likely spam |
| hideSpam | boolean | optional | true | Set to false to include tokens classified as likely spam |
🪙 Usage & Credits
This endpoint consumes 25 credits per request against your active API tier.
Response
json
// When filter != "items" (default — token balances):
{
"totalValue": "float *",
"zraRate": "float *",
"found": "integer",
"tokens": [
{
"symbol": "string",
"name": "string",
"icon": "string *",
"amount": "string (integer) *",
"parts": "string (integer) *",
"rate": "float *",
"value": "float *",
"market_cap": "float *",
"stat_last_update": "integer *",
"changePercent": "float *",
"type": "string",
"aceAuthorized": "boolean *",
"spamLikely": "boolean"
}
]
}
// When filter = "items" (NFT/SBT items):
{
"found": "integer",
"items": [
{
"contractInfo": {
"symbol": "string",
"name": "string",
"icon": "string *",
"type": "string",
"items": "integer"
},
"items": [
{
"itemID": "string (integer) *",
"icon": "string *"
}
]
}
]
}Wallet Exists
GET
/v1/wallets?requestType=existsCheck whether a wallet/token combination exists on-chain.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| requestType | string | REQUIRED | — | Must be `exists` |
| address | string | REQUIRED | — | Wallet address to check |
| symbol | string | optional | — | Contract ID for specific token check |
🪙 Usage & Credits
This endpoint consumes 1 credit per request against your active API tier.
Response
json
{
"exists": "boolean"
}Related Wallet Graph
GET
/v1/wallets?requestType=relatedBuild a wallet-neighborhood graph from direct transfers, input/output flows, indexed balances, and bridge emits when foreign wallet data is available.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| requestType | string | REQUIRED | — | Must be `related` |
| address | string | REQUIRED | — | ZERA wallet address, or a prefixed foreign address such as solana:ADDRESS for bridge lookups |
| limit | int | max | optional | 25 | Maximum graph wallets returned, excluding the root. Higher depth consumes more API credits. Use `max` for the highest safe server cap. |
| txLimit | int | max | optional | 250 | Maximum recent relationship events scanned per expanded wallet query. Higher depth consumes more API credits. Use `max` for the highest safe server cap. |
| hopDepth | int | max | optional | 3 | Maximum graph hop depth. Use `1` for direct neighbors only, `2` for people-of-people, or `max` for the highest safe server cap. |
| relationDirection | all | incoming | outgoing | optional | all | Restrict traversal to incoming or outgoing flows from each expanded wallet. `all` keeps the existing bidirectional graph. |
| includeBridge | boolean | optional | true | Include bridge edges when bridge emits expose a foreign wallet address. |
🪙 Usage & Credits
This endpoint consumes 12 credits per request against your active API tier.
Notes
- Zerascan exposes this endpoint from wallet pages at /address/{address}/related with editable flow, wallet, and hop depth settings plus a Max scan shortcut.
- Credits are charged dynamically from the actual graph returned rather than the requested depth alone. The endpoint still performs a minimal auth preflight before execution, then bills from actual traversals and graph size.
- Max is now best-effort rather than unbounded. Oversized scans are capped server-side and Zerascan retries smaller scans automatically after a 429.
- Use `relationDirection=incoming` or `relationDirection=outgoing` to follow only one transfer direction through each expanded wallet.
- The bubble map is traversable: click a graph node or table action to select and highlight its path, then use Open Bubble to navigate into that wallet's related-wallet map.
- Wallets marked as excluded from circulating supply, including the configured omit list, are excluded from graph nodes. Synthetic premint transfer records are skipped.
- Bridge-linked Solana wallets are shown from bridge-out emits when the foreign wallet address is indexed. Bridge-in links are not inferred unless indexed emits expose the foreign wallet. Live Solana account balances are not fetched by this endpoint.
Response
json
{
"address": "string",
"chain": "zera | solana",
"generatedUnix": "integer",
"limit": "integer",
"txLimit": "integer",
"hopDepth": "integer",
"directionMode": "all | incoming | outgoing",
"depthReached": "integer",
"bestEffort": "boolean *",
"limitCapped": "boolean *",
"txLimitCapped": "boolean *",
"hopDepthCapped": "boolean *",
"graphTruncated": "boolean *",
"nodes": [
{
"id": "string",
"address": "string",
"chain": "zera | solana",
"label": "string",
"isRoot": "boolean *",
"depth": "integer",
"parentId": "string *",
"transactionCount": "integer",
"totalValue": "float *",
"topTokens": [
{
"symbol": "string",
"name": "string",
"amountRaw": "string",
"value": "float *"
}
]
}
],
"edges": [
{
"source": "node id",
"target": "node id",
"direction": "incoming | outgoing",
"relationType": "direct_transfer | input_output | bridge_inbound | bridge_outbound",
"tokenSymbol": "string",
"amountRaw": "string",
"transactionCount": "integer",
"sampleTransactions": ["string"]
}
],
"relations": [
{
"address": "string",
"chain": "zera | solana",
"label": "string",
"depth": "integer",
"parentId": "string *",
"score": "float",
"transactionCount": "integer",
"sentCount": "integer",
"receivedCount": "integer",
"bridgeCount": "integer",
"relationTypes": ["string"],
"totalValue": "float *",
"topTokens": []
}
]
}