Discovery and markets API

Which tokens just went into or out of an exchange's wallets?

The newest ERC-20 deposits to and withdrawals from exchange wallets on Ethereum: transaction, exchange, direction, addresses, token, amount, USD. Filter by token and minimum USD.

GET/api/external/discovery/exchange-transfers/{chain}

What it returns

A live feed of ERC-20 transfers into and out of centralized-exchange wallets on Ethereum, newest first: the transaction, the exchange, whether it was a deposit (to is the exchange's wallet) or a withdrawal (from is), the token, the amount and its USD value. Only Binance and Coinbase wallets appear. The feed answers the 100 newest transfers matching the filters: unfiltered that is about two minutes, while minUsd reaches further back (1,000,000 covered about two hours when measured, 100,000,000 about a month), so windowOldestAt says how far this answer looked. Transfers under 100 USD are never listed. txHash is not unique: one transaction can carry several legs, each its own row. A symbol that matches nothing answers an empty list.

Chains

  • Ethereum ETH

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/exchange-transfers/ETH"
Parameters
ParameterDescription
limit

query · integer · optional

How many transfers to return, newest first. Defaults to 100; at most 100.
symbol

query · string · optional

Keep only one token, by ticker, e.g. "USDT". Case-insensitive. Not a contract address.
minUsd

query · number · optional

Keep only transfers worth at least this, USD. Raising it reaches further back in time.
chain

path · string · required

The chain to query. ETH; every other chain returns 400.

Response fields

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

Response fields of Which tokens just went into or out of an exchange's wallets?
FieldTypeDescription
transfersobject[]Newest first. Empty when no transfer matches the filters.
transfers[].txHashstringThe transaction. Not unique: a transaction with several legs has several rows.
transfers[].atintegerThe block's time, Unix seconds.
transfers[].exchangestringThe exchange whose wallet sent or received, e.g. "Binance".
transfers[].directionstringdeposit: to is the exchange's wallet. withdrawal: from is.
transfers[].fromstringThe sending address, lowercase.
transfers[].tostringThe receiving address, lowercase.
transfers[].assetSymbolstringThe token's ticker.
transfers[].amountnumber | nullWhole tokens moved.
transfers[].amountUsdnumber | nullUSD value at the time of the transfer.
windowOldestAtinteger | nullThe time of the oldest transfer returned for these filters, before limit: how far back this answer looked. null when none matched.

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