Wallets API
Who a wallet is
Whether an address is a known exchange, a tagged protocol or program, or has a registered domain name -- identity, not risk and not holdings. SOL, ETH, BASE and BNB.
/api/external/wallet-analysis/wallet-labels/{chain}/{address}What it returns
Who an address is: a known exchange, a tagged protocol or program, or a registered name. SOL, ETH, BASE and BNB. On ETH, BASE and BNB, type and category are always null (the tags there carry no such taxonomy), label is the highest-ranked name tag, entity the protocol tag, tags the descriptive tags, and domains holds at most the address's own primary name (e.g. an ".eth" name), and only when that name resolves back to the address. On BNB domains is null: no name service answers on that chain. On ETH, BASE and BNB, when the public tags fail or know nothing about the address, a labelled-address directory is asked next; it carries a label and an entity but no tag list, so tags is null on those answers, and on BASE domains is null on them too (the name is not checked there).
Chains
- Solana SOL
- BNB Chain BNB
- Ethereum ETH
- Base BASE
Request
Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.
curl -H "x-dex-data-key: $DEXDATA_API_KEY" \ "https://api.dexdata.io/api/external/wallet-analysis/wallet-labels/SOL/<address>"
| Parameter | Description |
|---|---|
chainpath · string · required | The chain the wallet address belongs to. SOL, ETH, BASE and BNB; every other chain returns 400 — this resource is not offered there. |
addresspath · string · required | The wallet address. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
type | string | null | Always null on ETH, BASE and BNB. The underlying source's own taxonomy for what this address IS -- e.g. "wallet", "protocol", "program", "token". Published verbatim; never invented and never normalised into a fixed enum, because doing so would assert a category the source did not actually send. May be the fixed redaction string described below if the source's own answer named one of this surface's upstream data providers. |
entity | string | null | The named entity behind this address, when the underlying source recognises one -- e.g. "KuCoin", "Raydium AMM V4". LABEL CONTENT IS NOT GUARANTEED CORRECT even when this field is populated: measured live 2026-09-17, an independently-verified address (the base token program nearly every token on this chain uses) was confidently labelled as an unrelated entity by the underlying source, while two other independently-verified addresses labelled correctly in the same pass. Treat a populated value as a best-effort identification, not a verified fact -- EXCEPT for a small, fixed set of public, immutable Solana program addresses (the System Program, the SPL Token Program, Token-2022, the Associated Token Account Program), where this is corrected to the permanent, independently-verified identity rather than the source's own answer. May also be the fixed redaction string described on label below if the source's own answer named one of this surface's upstream data providers. |
label | string | null | A more specific label than entity -- e.g. "KuCoin Deposit Wallet". Same accuracy caveat, and the same canonical-program exception, as entity above. If the underlying source's own answer named one of this surface's own upstream data providers, this field (and type/entity/category, and any matching entry in tags/domains) is replaced with the fixed string "[redacted: named one of this surface's own data providers]" rather than emptied to null or dropped -- null on this surface means "no data"; a redaction means the opposite, that the source DID answer and part of it is deliberately withheld. |
category | string | null | Always null on ETH, BASE and BNB. The underlying source's own category for the entity -- e.g. "Program", "Deposit Address", "Vault". Same accuracy caveat, and the same canonical-program exception, as entity above. May be the fixed redaction string described on label above. |
tags | string[] | null | The underlying source's own tags for this address. [] when the source knows the address but tags nothing; null when its record carried no tag list. Any entry naming one of this surface's own upstream data providers is replaced in place with the fixed redaction string described on label above, rather than removed, so the array's length still reflects what the source sent. |
domains | string[] | null | Domain names (e.g. ".sol") registered to this address. On ETH and BASE, at most the address's own primary name (e.g. ".eth"), and only when it resolves back to this address. [] when checked and none. null when not checked: always on BNB, where no name service answers, and on BASE when the name could not be asked. A wallet squatting a domain naming one of this surface's own upstream data providers is a demonstrated, not hypothetical, risk on this field, so any matching entry is redacted in place with the fixed string described on label above, the same way as tags. |
Start building with DexData today
Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.
Get a free API key