Wallet Identity - Multiple

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.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

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).

Identity Field Definitions 🏷️
  • type — the identity class: wallet, exchange, protocol, token, program, or unknown. 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) .sol domain, 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 .sol domains a wallet owns. domains is capped at 20 and sorted shortest-first then alphabetical; domains_total is 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 as null).
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, not domains.length — the array is a 20-item preview; use the domains endpoint 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 domains endpoint for the full set.
    • Domains are returned only for type: wallet; non-wallet identities suppress them (SNS-spam guard).
    • Solana only.

Body Params
addresses
array of strings
required
length between 1 and 100

Wallet addresses (or .sol domains) to resolve. Maximum 100; duplicates are de-duplicated.

addresses*
Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json