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.
/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"
| Parameter | Description |
|---|---|
limitquery · integer · optional | How many transfers to return, newest first. Defaults to 100; at most 100. |
symbolquery · string · optional | Keep only one token, by ticker, e.g. "USDT". Case-insensitive. Not a contract address. |
minUsdquery · number · optional | Keep only transfers worth at least this, USD. Raising it reaches further back in time. |
chainpath · 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.
| Field | Type | Description |
|---|---|---|
transfers | object[] | Newest first. Empty when no transfer matches the filters. |
transfers[].txHash | string | The transaction. Not unique: a transaction with several legs has several rows. |
transfers[].at | integer | The block's time, Unix seconds. |
transfers[].exchange | string | The exchange whose wallet sent or received, e.g. "Binance". |
transfers[].direction | string | deposit: to is the exchange's wallet. withdrawal: from is. |
transfers[].from | string | The sending address, lowercase. |
transfers[].to | string | The receiving address, lowercase. |
transfers[].assetSymbol | string | The token's ticker. |
transfers[].amount | number | null | Whole tokens moved. |
transfers[].amountUsd | number | null | USD value at the time of the transfer. |
windowOldestAt | integer | null | The 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