Discovery and markets API

Top holders of a chain's native coin (ETH rich list)

The 50 addresses holding the most ETH on RHC, Ethereum, OP or Scroll, largest first, with contract flags and published labels such as exchange cold wallets.

GET/api/external/discovery/native-coin-holders/{chain}

What it returns

The top 50 addresses on one chain by native-coin balance (ETH on every chain served), largest first. Contracts are ranked alongside wallets — the staking deposit contract, the wrapped-coin contract and bridges usually lead — and isContract tells them apart. Each row carries the labels published for the address (e.g. an exchange cold wallet). Balances are in base units (wei) as decimal strings, exact at any size; divide by 10^coin.decimals. Only the native coin counts: a wallet holding its value in tokens is not on this list. One page; no pagination.

Chains

  • Ethereum ETH
  • Robinhood Chain RHC
  • Optimism OP
  • Scroll SCROLL

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/discovery/native-coin-holders/ETH"
Parameters
ParameterDescription
chain

path · string · required

RHC, ETH, OP or SCROLL; every other chain returns 400, because no wired source ranks its addresses by native balance.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of Top holders of a chain's native coin (ETH rich list)
FieldTypeDescription
coinobject
coin.symbolstringThe chain's native coin.
coin.decimalsintegerDecimals of balanceRaw.
holdersobject[]Largest balance first, in the order the ranking publishes — never re-sorted here.
holders[].rankinteger1-based position in the ranking.
holders[].addressstringThe address.
holders[].balanceRawstring | nullNative balance in base units (wei), as a decimal string.
holders[].isContractboolean | nullWhether the address is a contract. false is a real answer, distinct from null.
holders[].contractNamestring | nullA contract's published name; null for wallets and unnamed contracts.
holders[].verifiedboolean | nullWhether a contract's source is verified; null for wallets.
holders[].flaggedScamboolean | nullWhether the address is flagged as a scam. false is a real answer.
holders[].ensNamestring | nullThe ENS name set for the address, or null.
holders[].transactionCountinteger | nullTransactions the address has sent, or null when not published.
holders[].labelsstring[]Who the address belongs to, e.g. "Binance: Cold Wallet". Empty when unlabelled.
holders[].categoriesstring[]What kind of address it is, e.g. "Exchange", "Bridge". Empty when uncategorised.

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