Discovery and markets API
Net-worth wallet ranking, Solana only
Solana wallets ranked by raw NET WORTH held right now, not profit. Most rows are custody or exchange wallets, zero trades; trade count, volume and PnL are published per row for callers to judge.
/api/external/discovery/richest-wallets/{chain}What it returns
Ranks Solana wallets by raw NET WORTH (total USD value currently held), highest first — not a trading result. DISTINCT FROM realized-pnl-leaders and unrealized-pnl-leaders, which both rank wallets by a PROFIT figure: this ranks by what is currently HELD, and the three are not fallbacks or corroboration for each other. IMPORTANT CAVEAT, measured with ten live calls and reconfirmed on this build: most rows on this ranking read tradeCount 0, volumeUsd 0, realizedPnlUsd 0 and unrealizedPnlUsd 0 — custody and exchange wallets, not active traders — to at least rank 120, and the wired source offers NO filter that removes them (an invented parameter name is accepted and silently ignored, identically to a real one). This is published as-is, deliberately: there is no corroborating source for "who holds the most" and no measured way to separate a custodian from a self-custodying whale on this ranking, so every row is returned with its own tradeCount, volumeUsd, realizedPnlUsd and unrealizedPnlUsd fields so a caller can judge each one rather than trusting a hidden filter that does not exist. A 0 on any numeric field is a real reading, never an absence. offset/limit are real pagination (verified against distinct pages); there is no sort/direction parameter — the wired source is always ranked by net worth, descending.
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/discovery/richest-wallets/SOL"
| Parameter | Description |
|---|---|
offsetquery · integer · optional | 0-indexed row offset into the ranking. Defaults to 0. |
limitquery · integer · optional | How many wallets to return, highest net worth first. Capped at 100 — the wired source's own per-call ceiling (enforced after the API-key gate; see above). Defaults to 20. |
chainpath · string · required | Solana only; every other chain returns 400, because the wired source has no coverage there — see isRichestWalletsSupported. |
Response fields
A JSON response. Every field is always present; null means the value could not be established, never zero.
| Field | Type | Description |
|---|---|---|
wallets | object[] | Ranked highest totalValueUsd first, exactly as the source returns them. |
wallets[].wallet | string | The wallet address. |
wallets[].totalValueUsd | number | null | Total USD value currently held — the field this ranking is SORTED BY. |
wallets[].tradeCount | integer | null | The CUSTODY SIGNAL. A real, measured 0 (the large majority of rows) means no trades were recorded for this wallet — read this before treating a row as an active trader. |
wallets[].volumeUsd | number | null | Total notional traded. A real 0 sits beside a tradeCount of 0 on every row sampled. |
wallets[].realizedPnlUsd | number | null | Profit already taken out. Read 0 on every row sampled so far, regardless of tradeCount. |
wallets[].unrealizedPnlUsd | number | null | Paper gain or loss on what is still held. Read 0 on every row sampled so far. |
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