# Best liquidity providers

`GET https://api.getchord.xyz/v1/lp/leaderboard`

Source: https://getchord.xyz/docs/api-reference/operations/lpleaderboard/

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

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `chain` | query | yes | `5042` · `4663` · `143` | Chain id: `5042` Arc · `4663` Robinhood Chain · `143` Monad. |
| `unit` | query | no | `usd` · `native` (default `usd`) | `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`. |
| `sort` | query | no | `profit` · `profit_7d` · `profit_30d` · `win_rate` · `avg_age` · `positions` · `pools` · `ev` · `avg_invested` · `monthly_profit` · `fees` · `last_activity` (default `profit`) | `profit` = all time. An unknown value is `400 BAD_SORT`. |
| `limit` | query | no | integer (default `48`) |  |
| `all` | query | no | `0` · `1` | 1 = keep the wallets the fee check leaves out. |
| `minIn` | query | no | number (default `20`) | Ignore positions under this many dollars. |
| `minPositions` | query | no | integer |  |
| `minAgeHours` | query | no | number |  |
| `minWinRate` | query | no | number | Percent. |
| `minEv` | query | no | number |  |
| `minProfit` | query | no | number |  |
| `minMonthly` | query | no | number |  |
| `maxFirstTs` | query | no | integer | Only wallets active before this time. |
| `lastActiveDays` | query | no | number |  |
| `minFees` | query | no | number | Fees collected, all time. |

## Response 200

Example (captured from the live API):

```json
{
  "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
}
```

- **400**: Invalid parameters — `error` names the check that failed (`INVALID_PARAMS`, `BAD_ADDRESS`, `BAD_LIMIT`, `BAD_HOURS`, …).
