Wallets API
Which wallet does this .sol or .eth name point to?
Resolves a .sol name on SOL, or an ENS .eth name (Basenames included) on ETH and BASE, to the wallet it points to right now, and says how it was resolved and who holds the name.
/api/external/wallet-analysis/name-resolution/{chain}/{name}What it returns
On ETH and BASE, resolves an ENS name ending ".eth" (including Basenames such as jesse.base.eth) to the address its ETH address record holds: resolvedBy is address-record, address is null when the name sets no address, account is the name's node (namehash), owner is who holds the name (null for a name stored off-chain), and tokenized says whether the name is wrapped. An expired registration is a 404: anyone may register the name again. The name is case-insensitive.
On SOL, resolves a .sol name to the wallet it points to, by the name service's own rules, read from the chain: the holder of the name's NFT when the name is wrapped into one; else the address named by a SOL record signed both by the name's owner and by that address; else an address named by an older SOL record signed by the owner; else the owner itself. address is null when nothing valid points anywhere: the owner is a program (no keypair can sign for it) and no record names a wallet, the name's newer SOL record is malformed or not signed by the address it names, or the NFT a wrapped name lives in has been burned. A well-formed record signed under a previous owner is ignored. One subdomain level (dex.bonfida.sol) is resolved; deeper ones are refused. The top-level name is case-insensitive; a subdomain label is matched as written.
Chains
- Solana SOL
- 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/name-resolution/SOL/<name>"
| Parameter | Description |
|---|---|
chainpath · string · required | The chain whose name service registered the name. SOL (.sol names), ETH and BASE (.eth names) are served; BNB, STABLE, RHC and ARC return 400. CELO, ARB, OP and SCROLL return 400 here. |
namepath · string · required | The on-chain name: on SOL a .sol name, e.g. "bonfida.sol" — the ".sol" suffix may be left off; the top-level name is case-insensitive, a subdomain label is matched as written. On ETH and BASE an ENS name ending ".eth", e.g. "vitalik.eth" or "jesse.base.eth", case-insensitive. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
name | string | The name, normalized: on SOL the top-level name lowercase, ending ".sol"; on ETH and BASE lowercase, ending ".eth". |
address | string | null | The wallet the name points to. null when nothing valid points anywhere. |
resolvedBy | string | null | How address was found. SOL: nft-holder (the name is wrapped into an NFT and this wallet holds it), sol-record-v2 (a record signed by the owner and by the address), sol-record-v1 (an older record signed by the owner), owner (the name's owner). ETH and BASE: address-record (the name's ETH address record). null with address. |
owner | string | null | SOL: the owner written in the name's registry; for a name wrapped into an NFT it is the wrapping program's record, not a person: read address. ETH and BASE: who holds the name, the holder for a wrapped name; null for a name stored off-chain. Holding a name is not being paid by it: read address. |
tokenized | boolean | Whether the name is currently wrapped: into an NFT on SOL, by the name wrapper on ETH and BASE. |
ownerIsProgram | boolean | null | SOL: whether owner is a program address, which no keypair can sign for. null on ETH and BASE. |
account | string | The name's own on-chain account on SOL; its node (namehash) on ETH and BASE. |
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