Wallets ranked by Smart Score
const url = 'https://api.getchord.xyz/v1/smart-money/top?chain=5042&source=onchain&window=24h&category=all&limit=50';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.getchord.xyz/v1/smart-money/top?chain=5042&source=onchain&window=24h&category=all&limit=50'Which wallets make money on the chain, from the tape, ranked by a skill-adjusted score rather than raw profit (realized-weighted, luck-corrected, recency-decayed). Routers, executors and bots are removed before ranking (botsRemoved counts them). On Arc the board moves between rebuilds: a live delta of the last minutes’ trades sits on top of the last roll (live).
Notes: source=onchain is required on 5042 / 4663. The board is rebuilt on a schedule per window (15 min for 24h, hourly for 7d / 30d, 3 h for all) and served from cache in between. 503 CHAIN_NOT_ENABLED until the board is published for the chain.
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Chain id: 5042 Arc · 4663 Robinhood Chain · 143 Monad. Omitted = 143.
onchain = every venue, from the tape. Required on 5042 and 4663.
Responses
Section titled “ Responses ”object
object
EVM address, hex, case-insensitive.
Realized plus open PnL at current prices.
0–1.
object
Unix time, seconds, UTC.
degen · allrounder · majors …
Luck-corrected win rate.
The ranking key: realized-weighted, luck-corrected, recency-decayed profit.
Wallets that qualified after the bot passes.
The chain block the tape had reached when this board was built.
Unix time, milliseconds — when the server built this answer.
Arc only — the in-memory delta on top of the last roll.
object
object
Example
{ "wallets": [ { "wallet": "0xb145400da27a2497d9fc2cd5621f2bfd37617af4", "pnlUsd": 85260.25886163529, "realizedUsd": 28166.924288181075, "unrealizedUsd": 57093.33457345421, "volumeUsd": 68986.38694614707, "trades": 49, "tokensTraded": 5, "winningTokens": 3, "winRate": 0.6, "topToken": { "symbol": "ARGUS", "pnlUsd": 85345.61369765387 }, "lastActiveTs": 1789890946, "pnlMeme": 85260.25886163529, "pnlMajor": 0, "memeVol": 68986.38694614707, "archetype": "degen", "memeShare": 1, "winRateAdj": 0.5294117647058824, "smartScore": 43067.763434718785 }, { "wallet": "0xf8218b98f49b86c7e491079591acc08ee4fd6e7e", "pnlUsd": 53891.271617383565, "realizedUsd": 26940.46261686956, "unrealizedUsd": 26950.809000514004, "volumeUsd": 150140.03604099998, "trades": 70, "tokensTraded": 11, "winningTokens": 9, "winRate": 0.8181818181818182, "topToken": { "symbol": "ARGUS", "pnlUsd": 22862.25828632662 }, "lastActiveTs": 1789890046, "pnlMeme": 53891.271617383565, "pnlMajor": 0, "memeVol": 150140.03604099998, "archetype": "degen", "memeShare": 1, "winRateAdj": 0.6521739130434783, "smartScore": 32966.26695083121 } ], "totalWallets": 92826, "window": "7d", "category": "all", "chain": 5042, "source": "onchain", "indexedToBlock": 21808217, "updatedAt": 1789891859855, "live": { "rollStamp": 1789891728, "buckets": 21, "rows": 253, "seen": 1261, "ingested": 1261, "skippedDup": 0, "computedAt": 0 }, "botsRemoved": { "cadence": 325, "nonceOrDenylist": 5, "behavior": 37 }, "note": "ranked by Smart Score — skill-adjusted, realized-weighted profit (est. at current prices)"}Invalid parameters — error names the check that failed (INVALID_PARAMS, BAD_ADDRESS, BAD_LIMIT, BAD_HOURS, …).
Every non-2xx body.
object
Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.
For humans.
HTTP status, when included.
Example
{ "error": "INVALID_PARAMS", "message": "amount must be an integer string in the token's smallest unit"}The lane behind this endpoint is not ready or not enabled here (NOT_READY, CHAIN_NOT_ENABLED, NOT_ENABLED, *_UNAVAILABLE). Retry later; do not treat it as an empty answer.
Every non-2xx body.
object
Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.
For humans.
HTTP status, when included.
Example
{ "error": "INVALID_PARAMS", "message": "amount must be an integer string in the token's smallest unit"}