Best liquidity providers
const url = 'https://api.getchord.xyz/v1/lp/leaderboard?chain=5042&unit=usd&sort=profit&limit=48&all=0&minIn=20';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/lp/leaderboard?chain=5042&unit=usd&sort=profit&limit=48&all=0&minIn=20'LP wallets from the ledger: win rate, fees, pools, expected value per position, average age / invested / monthly profit, profit over 7 / 30 days / all time, the last seven days of profit and what they provide to. Every filter bound is inclusive; unset = off.
The board is fee-checked: a wallet whose profit is positive while the fees it collected are under a tenth of that profit made it on the token’s price (liquidity on a launch pulled into the buyers), not by providing, and is left out; hidden counts them and all=1 keeps them in. The check reads the window the board ranks by (profit_7d → 7 days, profit_30d → 30 days, every other sort → all time). Every sort ranks inside the 400 most profitable wallets of its window that pass the filters; total is that count. A window sort lists only wallets with a position that ended or was touched in the window.
Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters”Chain id: 5042 Arc · 4663 Robinhood Chain · 143 Monad.
native = every money field of the answer in the chain’s own coin (ETH on Robinhood Chain, MON on Monad; Arc’s coin is USDC), each deposit, withdrawal and fee converted at the coin’s price of its own hour, and live values at the price now. The fields keep their …Usd names; unit and unitSymbol in the answer say what they carry. The row rules (the $20 floor, the 20x bound) stay in dollars, so both units score the same positions. 503 UNIT_NOT_READY while a chain’s ledger is being rebuilt with these figures; another value is 400 BAD_UNIT.
profit = all time. An unknown value is 400 BAD_SORT.
1 = keep the wallets the fee check leaves out.
Ignore positions under this many dollars.
Percent.
Unix time, seconds, UTC.
Only wallets active before this time.
Fees collected, all time.
Responses
Section titled “ Responses ”object
object
The fee check was applied.
Wallets passing the filters that the fee check left out.
Wallets the board ranks.
object
EVM address, hex, case-insensitive.
Expected value per position.
Per window: the positions that ended or were last touched in it, the profit they made and the fees they collected over their life.
object
object
object
object
Unix time, seconds, UTC.
Unix time, seconds, UTC.
Last 7 days.
object
YYYY-MM-DD
What the wallet provides to, by dollars in.
object
EVM address, hex, case-insensitive.
Unix time, milliseconds — when the server built this answer.
Example
{ "chain": 5042, "sort": "profit", "minIn": 20, "filters": {}, "rows": [ { "wallet": "0x50550bf5c09b38e5c574c190cef88b859694a44a", "winRatePct": 75, "feesUsd": 13516.447234, "pools": 5, "evUsd": 55.95264399437404, "avgAgeHours": 53.940039682539684, "avgInvestedUsd": 8802.035202296884, "avgMonthlyProfitUsd": 54574.16597590998, "windows": { "d7": { "positions": 7, "profitUsd": 13643.541493977495 }, "d30": { "positions": 7, "profitUsd": 13643.541493977495 }, "all": { "positions": 7, "profitUsd": 13643.541493977495 } }, "open": 3, "closed": 4, "wins": 3, "firstTs": 1789524227, "lastTs": 1789695131, "daily": [ { "day": "2026-09-14", "profitUsd": 0 }, { "day": "2026-09-15", "profitUsd": 0 } ], "tokens": [ { "address": "0xbc43ce8dec648ea298c4275559b81d6261c90b67", "symbol": "TOLLY", "logo": "https://cdn.dexscreener.com/cms/images/LquZIzWeLJoeUE4x?width=800&height=800&quality=95&format=auto", "inUsd": 56621.88931640096, "positions": 4 }, { "address": "0xa163d7624da3b5d9182c50eab5b8cd247ae861bb", "symbol": "Minara", "logo": "https://static.minara.ai/minara-fun/token-logos/1a464bd3cbb6e0db661556f18b784344754785730da3bf9752e383e7e5a2605a.png", "inUsd": 13303.485575872332, "positions": 1 } ] }, { "wallet": "0x4705173e07dc8acde8a826a96883848d0a4bb2cf", "winRatePct": null, "feesUsd": 12121.658648, "pools": 1, "evUsd": null, "avgAgeHours": 50.736111111111114, "avgInvestedUsd": 1585.3021168837654, "avgMonthlyProfitUsd": 48486.634592, "windows": { "d7": { "positions": 5, "profitUsd": 12121.658648 }, "d30": { "positions": 5, "profitUsd": 12121.658648 }, "all": { "positions": 5, "profitUsd": 12121.658648 } }, "open": 5, "closed": 0, "wins": 0, "firstTs": 1789644774, "lastTs": 1789742574, "daily": [ { "day": "2026-09-14", "profitUsd": 0 }, { "day": "2026-09-15", "profitUsd": 0 } ], "tokens": [ { "address": "0x2ba0f44bdfc17fba30eda9cdbecb908ca45b043b", "symbol": "CRCL", "logo": "https://cdn.dexscreener.com/cms/images/Y-swLma-R46hqFvc?width=800&height=800&quality=95&format=auto", "inUsd": 7926.5105844188265, "positions": 5 } ] } ], "updatedAt": 1789891861738}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"}