Resolve up to 100 addresses to their identities in one request. Returns a map keyed by address; each value has the same shape as the single endpoint. Addresses with no identity are omitted.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Resolve up to 100 addresses to their identities in one request.
POST a list of addresses and get a map keyed by address: { "<address>": <identity>, … }. Each identity is the same compact object returned by the single endpoint — type (wallet / exchange / protocol / token / …), an optional named entity, a display label, a category, tags, and, for wallets, up to 20 .sol domains plus domains_total. Addresses with no identity (type: unknown) are simply omitted from the map.
For a wallet identified only by a .sol domain, label is set to its first domain (domains[0]). The per-address domains array is a preview capped at 20, ordered shortest-first then alphabetical — use domains_total for the true count and the domains endpoint for the full list. Non-wallet identities never return domains (a CEX "owning" a .sol domain is SNS spam).
- Premium
- Business
- Enterprise
Solana
Identity Field Definitions 🏷️
- type — the identity class:
wallet,exchange,protocol,token,program, orunknown. Drives how a client should render the address. - entity — the named owner when known (e.g.
Binance,Jupiter,Astralane). Absent for anonymous wallets. - label — the human-readable display name. For a domain-only wallet this is the first (shortest)
.soldomain, until the owner's favourite domain is available. - category — the broad grouping behind the type (e.g.
Wallet,Exchange,Protocol,Token). - tags — extra descriptors attached to the identity (e.g. a KOL's name,
deposit). Empty array when none apply. - domains / domains_total — the
.soldomains a wallet owns.domainsis capped at 20 and sorted shortest-first then alphabetical;domains_totalis the true count.
Use Cases 💡
- Label every address in an activity feed, leaderboard, or CSV export in a single round-trip.
- Annotate a batch of counterparties from a set of transactions with names, types, and tags.
- Back a UI that renders many addresses at once (holder lists, transfer tables) with identities.
How to Use 🛠️
- Body:
{ "addresses": ["<addr1>", "<addr2>", … ] }— 1 to 100 addresses. Duplicates are de-duplicated.- Returns
{ "<address>": <identity>, … }; addresses with no label are omitted (not returned asnull).
- Returns
Best Practices ✅
- De-duplicate and cap input at 100 per call; page your own list across multiple requests.
- Prefer this over many single calls when labelling more than a couple of addresses.
- Trust each identity's
domains_total, notdomains.length— the array is a 20-item preview; use thedomainsendpoint for a wallet's full list.
Limitations ⚠️
- At most 100 addresses per request.
- Unlabelled addresses (
type: unknown) are omitted from the response map. - Each identity returns at most 20 domains (a preview) — use the
domainsendpoint for the full set. - Domains are returned only for
type: wallet; non-wallet identities suppress them (SNS-spam guard). - Solana only.
- Unlabelled addresses (
