Wallets API
Every ENS name linked to a wallet, owned or pointing at it
All active ENS names and Basenames that resolve to a wallet or that it owns, with owner, resolution, registration and expiry. ETH and BASE.
/api/external/wallet-analysis/wallet-names/{chain}/{address}What it returns
The active ENS names (on BASE also Basenames) linked to one wallet, newest registration first, up to 50 per page: each name, whether it resolves to this wallet, whether this wallet owns it (directly or through the name wrapper), the address it resolves to, its owners, and its registration and expiry times. Anyone can point a name they own at any address, so a name with resolvesHere true and ownedHere false says nothing about who the wallet is — ownedHere is the signal of control. For the one primary name only, use wallet-labels. Keep passing nextCursor back as cursor until it is null. An address with no names answers an empty list.
Chains
- 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-names/ETH/<address>"
| Parameter | Description |
|---|---|
cursorquery · string · optional | A nextCursor from the previous page; omit it for the first page. |
chainpath · string · required | ETH or BASE; every other chain returns 400 (OP and RHC carry the same names as ETH). |
addresspath · string · required | The wallet: 0x followed by 40 hexadecimal characters, any case. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
address | string | The wallet asked about, as asked. |
names | object[] | Newest registration first. |
names[].name | string | The name, e.g. "jesse.base.eth". |
names[].resolvesHere | boolean | Whether the name resolves to this wallet. |
names[].ownedHere | boolean | null | Whether this wallet owns the name, directly or wrapped; null when no owner is published (Basenames), so ownership is unknown. |
names[].resolvedAddress | string | null | The address the name resolves to; null when it resolves nowhere. |
names[].owner | string | null | The registry owner; null when none is published. |
names[].wrappedOwner | string | null | The owner inside the name wrapper; null when the name is not wrapped. |
names[].registeredAt | integer | null | Registration time, unix seconds; null when unknown. |
names[].expiresAt | integer | null | Expiry, unix seconds; null for names without one (most subnames). |
nextCursor | string | null | Pass back as cursor for the next page; null on the last. |
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