Skip to main content
POST
Wallet Identity - Multiple

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

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

Authorizations

X-API-KEY
string
header
required

API key for authentication

Body

application/json
addresses
string[]
required

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

Required array length: 1 - 100 elements

Response

Successful response

success
boolean
required
data
object
required

Map keyed by address → identity. Addresses with no identity (type=unknown) are omitted.