> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solanatracker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Leaderboards

> Rank Solana KOLs and top traders by PnL, win rate, ROI, or trade count — query leaderboards by period, date, or token with the Solana Tracker PnL V2 API.

## KOL Leaderboards

KOLs are tracked wallets with a public identity. Each entry can include a name, Twitter handle, and avatar.

<img src="https://mintcdn.com/solanatracker/ZM5vWoSAJUJFeh6A/images/guides/kolscan-leaderboard.png?fit=max&auto=format&n=ZM5vWoSAJUJFeh6A&q=85&s=41ee74323643314e245c054c9283d73d" alt="KOLScan leaderboard with KOL activity calendar and ranked wallet performance" width="3054" height="1834" data-path="images/guides/kolscan-leaderboard.png" />

### All-Time

The [KOL leaderboard](/data-api/pnl-v2/get-kol-leaderboard) ranks KOL wallets by lifetime performance.

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://data.solanatracker.io/v2/pnl/leaderboard/kols?sort=realized&direction=desc&limit=25" \
    -H "x-api-key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const res = await fetch(
    "https://data.solanatracker.io/v2/pnl/leaderboard/kols?sort=realized&direction=desc&limit=25",
    { headers: { "x-api-key": "YOUR_API_KEY" } }
  );
  const { traders } = await res.json();

  traders.forEach((kol, i) => {
    console.log(`#${i + 1} ${kol.identity.name} (@${kol.identity.twitter})`);
    console.log(`   Realized: $${kol.pnl.realized.toLocaleString()}`);
    console.log(`   Win Rate: ${kol.winRate}%`);
  });
  ```

  ```python Python theme={null}
  import requests

  res = requests.get(
      "https://data.solanatracker.io/v2/pnl/leaderboard/kols",
      params={"sort": "realized", "direction": "desc", "limit": 25},
      headers={"x-api-key": "YOUR_API_KEY"}
  )

  for i, kol in enumerate(res.json()["traders"], 1):
      name = kol["identity"]["name"]
      pnl = kol["pnl"]["realized"]
      print(f"#{i} {name}: ${pnl:,.2f}")
  ```
</CodeGroup>

#### Sort Options

| Field            | Description                       |
| ---------------- | --------------------------------- |
| `total`          | Total PnL (realized + unrealized) |
| `realized`       | Realized PnL                      |
| `unrealized`     | Unrealized PnL                    |
| `invested`       | Total invested                    |
| `proceeds`       | Total proceeds from sells         |
| `trades`         | Number of trades                  |
| `tokens`         | Number of tokens traded           |
| `roi`            | Return on investment              |
| `win_percentage` | Win rate                          |
| `last_trade`     | Most recent trade                 |

***

### By Time Period

The [period leaderboard](/data-api/pnl-v2/get-kol-leaderboard-for-a-period) ranks KOLs within a specific window. Use shortcuts like `7d`, `30d`, or set explicit `start`/`end` dates.

```bash theme={null}
# Last 7 days
curl "https://data.solanatracker.io/v2/pnl/leaderboard/kols/period?period=7d&sort=realized" \
  -H "x-api-key: YOUR_API_KEY"

# Custom range
curl "https://data.solanatracker.io/v2/pnl/leaderboard/kols/period?start=2025-03-01&end=2025-03-31" \
  -H "x-api-key: YOUR_API_KEY"
```

<CardGroup cols={2}>
  <Card title="KOLs = named wallets">
    Best when identity matters and you want to compare public figures.
  </Card>

  <Card title="Top traders = raw performance">
    Better when you care about results regardless of reputation.
  </Card>
</CardGroup>

***

### Monthly Calendar

The [calendar endpoint](/data-api/pnl-v2/get-kol-calendar) returns aggregate KOL performance per day for a given month. Great for heatmap visualizations.

```bash theme={null}
curl "https://data.solanatracker.io/v2/pnl/leaderboard/kols/calendar?year=2025&month=3" \
  -H "x-api-key: YOUR_API_KEY"
```

<Tip>
  Color each day by total KOL PnL to quickly spot market-wide trends.
</Tip>

***

### Single Day

The [daily breakdown endpoint](/data-api/pnl-v2/get-kol-daily-breakdown) shows each KOL's trades and PnL for one specific day.

```bash theme={null}
curl "https://data.solanatracker.io/v2/pnl/leaderboard/kols/date?date=2025-03-15" \
  -H "x-api-key: YOUR_API_KEY"
```

***

## Solana Traders Leaderboard

The [Solana Traders Leaderboard](/data-api/pnl-v2/get-top-traders) ranks Solana trading wallets over a supported rolling window (`1`, `7`, `30`, or `90` days). Unlike KOL leaderboards, this covers **all wallets**, not just known ones.

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://data.solanatracker.io/v2/pnl/leaderboard/top?days=30&sort=realized&direction=desc&limit=50" \
    -H "x-api-key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const res = await fetch(
    "https://data.solanatracker.io/v2/pnl/leaderboard/top?days=30&sort=realized&direction=desc&limit=50",
    { headers: { "x-api-key": "YOUR_API_KEY" } }
  );
  const { traders } = await res.json();

  traders.forEach((t, i) => {
    console.log(`#${i + 1} ${t.wallet}`);
    console.log(`   Realized: $${t.period.realized.toLocaleString()}, ROI: ${t.period.roi}%`);
  });
  ```
</CodeGroup>

### Filters

Use minimum thresholds to filter out lucky one-offs:

<img src="https://mintcdn.com/solanatracker/ZM5vWoSAJUJFeh6A/images/guides/photon-leaderboard.png?fit=max&auto=format&n=ZM5vWoSAJUJFeh6A&q=85&s=0a717216be77f259ce972667008dd200" alt="Photon leaderboard filtered to wallets trading through Photon" width="2712" height="1890" data-path="images/guides/photon-leaderboard.png" />

<img src="https://mintcdn.com/solanatracker/ZM5vWoSAJUJFeh6A/images/guides/bloom-leaderboard.png?fit=max&auto=format&n=ZM5vWoSAJUJFeh6A&q=85&s=d6d52d69a709b4bb1b06b4a89645f22e" alt="Bloom leaderboard filtered to wallets trading through Bloom" width="2620" height="2152" data-path="images/guides/bloom-leaderboard.png" />

| Parameter           | Default    | Description                                                                                                                   |
| ------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `days`              | `90`       | Rolling window in days. Use `1`, `7`, `30`, or `90` for exact supported windows.                                              |
| `sort`              | `realized` | `realized`, `volume`, `days`, `roi`, `win_percentage`, `trades`, `tokens`                                                     |
| `minTrades`         | `20`       | Minimum number of trades                                                                                                      |
| `minInvested`       | `1`        | Minimum total USD invested                                                                                                    |
| `minDays`           | `3`        | Minimum active trading days                                                                                                   |
| `minWinRate`        | —          | Minimum win percentage                                                                                                        |
| `minRoi`            | —          | Minimum ROI percentage                                                                                                        |
| `minClosedTokens`   | —          | Minimum number of closed positions                                                                                            |
| `maxSingleTokenPct` | —          | Maximum % of PnL from a single token (filters one-hit wonders)                                                                |
| `excludeArbitrage`  | `true`     | Arbitrage wallets are excluded by default. Set to `false` to include them.                                                    |
| `platform`          | —          | Filter by platform (`axiom`, `bloom`, `photon`). Comma-separated for multiple. `axiom-flash` is accepted as an `axiom` alias. |
| `pnlMode`           | `strict`   | `strict`, `adjusted`, or `raw`. See [Essentials](/guides/pnl-v2/overview#essentials).                                         |

<Warning>
  **Coverage:** the top-traders leaderboard ranks the **top 500k wallets** per period. A wallet can trade and still not appear in this ranked list. To inspect any wallet directly, call `/v2/pnl/wallets/:wallet`.
</Warning>

<Tip>
  Try `maxSingleTokenPct=30` + `minDays=10` + `minTrades=50` to find consistently profitable traders, not just one-hit wonders.
</Tip>

<CardGroup cols={2}>
  <Card title="Next: Batch Operations" href="/guides/pnl-v2/batch-operations">
    After you shortlist wallets, use batch endpoints to enrich them in bulk.
  </Card>

  <Card title="Wallet Analysis" href="/guides/pnl-v2/wallet-analysis">
    Drill into a single wallet's full history and risk profile.
  </Card>
</CardGroup>
