---
title: "Best liquidity providers"
method: GET
path: "/lp/leaderboard"
tags: ["Liquidity"]
---

# Best liquidity providers

`GET /lp/leaderboard`

## Request

- Base URL: `https://api.getchord.xyz/v1`
- URL: `https://api.getchord.xyz/v1/lp/leaderboard`
- Auth: none declared

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.

## Query parameters

- `chain` 5042 | 4663 | 143, required
- `unit` 'usd' | 'native'
- `sort` 'profit' | 'profit_7d' | 'profit_30d' | 'win_rate' | 'avg_age' | 'positions' | 'pools' | 'ev' | 'avg_invested' | 'monthly_profit' | 'fees' | 'last_activity'
- `limit` integer
- `all` '0' | '1'
- `minIn` number
- `minPositions` integer
- `minAgeHours` number
- `minWinRate` number
- `minEv` number
- `minProfit` number
- `minMonthly` number
- `maxFirstTs` integer: Unix time, seconds, UTC.
- `lastActiveDays` number
- `minFees` number

## Response `200`

- object
  - `chain` integer
  - `sort` string
  - `minIn` number
  - `filters` object
  - `feeCheck` boolean: The fee check was applied.
  - `hidden` integer: Wallets passing the filters that the fee check left out.
  - `total` integer: Wallets the board ranks.
  - `rows` LpLeaderRow[]
    - `wallet` string: EVM address, hex, case-insensitive.
    - `winRatePct` number, nullable
    - `feesUsd` number
    - `pools` integer
    - `evUsd` number, nullable: Expected value per position.
    - `avgAgeHours` number, nullable
    - `avgInvestedUsd` number, nullable
    - `avgMonthlyProfitUsd` number, nullable
    - `windows` object: Per window: the positions that ended or were last touched in it, the profit they made and the fees they collected over their life.
      - `d7` object
        - `positions` integer
        - `profitUsd` number
        - `feesUsd` number
      - `d30` object
        - `positions` integer
        - `profitUsd` number
        - `feesUsd` number
      - `all` object
        - `positions` integer
        - `profitUsd` number
        - `feesUsd` number
    - `open` integer
    - `closed` integer
    - `wins` integer
    - `firstTs` integer, nullable: Unix time, seconds, UTC.
    - `lastTs` integer: Unix time, seconds, UTC.
    - `daily` object[]: Last 7 days.
      - `day` string: YYYY-MM-DD
      - `profitUsd` number
    - `tokens` object[]: What the wallet provides to, by dollars in.
      - `address` string: EVM address, hex, case-insensitive.
      - `symbol` string, nullable
      - `logo` string, nullable
      - `inUsd` number
      - `positions` integer
  - `updatedAt` integer: Unix time, milliseconds — when the server built this answer.

## Other responses

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

---

[API](https://skmtc.dev/getchord/apis/chord-api.md) · [All operations](https://skmtc.dev/getchord/apis/chord-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getchord/apis/chord-api/revisions/d3bc4640fea0?raw)
