Tokens API
Smart-money wallet activity
Which labelled KOL and whale wallets are trading right now across Solana, and what they are buying or selling — a market-wide feed, not scoped to one token.
/api/external/token-analysis/smart-money/{chain}What it returns
Two INDEPENDENT cohorts of "smart money", always both returned: kol (trades made by wallets a source already tags as a known KOL or influencer) and whale (trades over a USD size threshold, independent of whether the wallet is name-tagged). A trade may qualify for both, one, or neither — nothing here establishes how often either happens, so the two are published as separate lists rather than merged into one. Solana only: the wired source has no chain parameter at all, by construction, not a coverage gap. tradeCount: 0 on either cohort is a real, measured answer — no qualifying trade in the page fetched — and is never confused with null, which means that cohort could not be determined (its own upstream lookup failed; the OTHER cohort can still answer normally). identity (kol field on a row) is only ever present on the kol cohort — a whale-cohort row's kol field is always null, because that feed does not carry the field at all, not because nobody checked. Rows are one page of recent activity, not an exhaustive log — there is no pagination.
Chains
- Solana SOL
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/token-analysis/smart-money/SOL"
| Parameter | Description |
|---|---|
chainpath · string · required | SOL only. The wired source for this question has no chain parameter at all, by construction — every other chain 400s. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
kol | object | Trades made by wallets a source already tags as a known KOL or influencer. |
kol.tradeCount | number | null | |
kol.walletCount | number | null | |
kol.hasMore | boolean | null | |
kol.trades | object[] | Newest first. Empty when this cohort genuinely has nothing in the page fetched. |
kol.trades[].txHash | string | null | |
kol.trades[].wallet | string | null | |
kol.trades[].side | string | null | |
kol.trades[].at | number | null | |
kol.trades[].amountToken | number | null | |
kol.trades[].priceUsd | number | null | null when the source's literal 0 "no price found" placeholder was returned for this row — the trade itself still happened and every other field is still published. |
kol.trades[].volumeUsd | number | null | |
kol.trades[].program | string | null | |
kol.trades[].pools | string[] | |
kol.trades[].kol | object | null | |
kol.trades[].kol.name | string | null | |
kol.trades[].kol.twitter | string | null | |
kol.trades[].kol.avatar | string | null | |
whale | object | Trades over a USD size threshold, independent of whether the wallet is name-tagged. This cohort's rows never carry a kol value other than null. |
whale.tradeCount | number | null | |
whale.walletCount | number | null | |
whale.hasMore | boolean | null | |
whale.trades | object[] | Newest first. Empty when this cohort genuinely has nothing in the page fetched. |
whale.trades[].txHash | string | null | |
whale.trades[].wallet | string | null | |
whale.trades[].side | string | null | |
whale.trades[].at | number | null | |
whale.trades[].amountToken | number | null | |
whale.trades[].priceUsd | number | null | null when the source's literal 0 "no price found" placeholder was returned for this row — the trade itself still happened and every other field is still published. |
whale.trades[].volumeUsd | number | null | |
whale.trades[].program | string | null | |
whale.trades[].pools | string[] | |
whale.trades[].kol | object | null | |
whale.trades[].kol.name | string | null | |
whale.trades[].kol.twitter | string | null | |
whale.trades[].kol.avatar | string | null |
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