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.

GET/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>"
Parameters
ParameterDescription
cursor

query · string · optional

A nextCursor from the previous page; omit it for the first page.
chain

path · string · required

ETH or BASE; every other chain returns 400 (OP and RHC carry the same names as ETH).
address

path · 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.

Response fields of Every ENS name linked to a wallet, owned or pointing at it
FieldTypeDescription
addressstringThe wallet asked about, as asked.
namesobject[]Newest registration first.
names[].namestringThe name, e.g. "jesse.base.eth".
names[].resolvesHerebooleanWhether the name resolves to this wallet.
names[].ownedHereboolean | nullWhether this wallet owns the name, directly or wrapped; null when no owner is published (Basenames), so ownership is unknown.
names[].resolvedAddressstring | nullThe address the name resolves to; null when it resolves nowhere.
names[].ownerstring | nullThe registry owner; null when none is published.
names[].wrappedOwnerstring | nullThe owner inside the name wrapper; null when the name is not wrapped.
names[].registeredAtinteger | nullRegistration time, unix seconds; null when unknown.
names[].expiresAtinteger | nullExpiry, unix seconds; null for names without one (most subnames).
nextCursorstring | nullPass 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