> ## 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.

# Get KOL Leaderboard

> Ranks tracked KOL wallets by all-time performance. Use it to compare lifetime realized and unrealized PnL, ROI, trade count, and recency across known wallets.

## SDK Example

<CodeGroup>
  ```typescript SDK
  import { Client } from '@solana-tracker/data-api';

  const client = new Client({ apiKey: 'YOUR_API_KEY' });

  const data = await client.getPnlV2KOLLeaderboard({ limit: 50 });

  ```
</CodeGroup>


## OpenAPI

````yaml /data-api/pnl-v2/openapi.json get /v2/pnl/leaderboard/kols
openapi: 3.1.0
info:
  title: SolanaTracker PnL V2 API
  description: >-
    Profit-and-loss tracking for Solana wallets. Provides wallet PnL summaries,
    token-level positions, leaderboards, KOL rankings, risk analysis, and
    historical performance data. All monetary values are in USD. All timestamps
    are Unix milliseconds unless noted otherwise.
  version: 2.0.0
servers:
  - url: https://data.solanatracker.io
    description: Production
security:
  - apiKey: []
tags:
  - name: Leaderboard
    description: Top traders, whales, and KOL rankings
  - name: Token
    description: Per-token trader and holder data
  - name: Wallet
    description: Wallet-level PnL, positions, history, and analysis
  - name: Batch
    description: Bulk wallet summaries and position lookups
paths:
  /v2/pnl/leaderboard/kols:
    get:
      tags:
        - Leaderboard
      summary: Get KOL Leaderboard
      description: >-
        Ranks tracked KOL wallets by all-time performance. Use it to compare
        lifetime realized and unrealized PnL, ROI, trade count, and recency
        across known wallets.
      operationId: getKOLLeaderboard
      parameters:
        - name: sort
          in: query
          description: Field to rank KOLs by.
          schema:
            type: string
            enum:
              - total
              - realized
              - unrealized
              - invested
              - proceeds
              - value
              - trades
              - tokens
              - roi
              - win_percentage
              - last_trade
            default: realized
        - $ref: '#/components/parameters/direction'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/cursor'
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traders:
                    type: array
                    items:
                      allOf:
                        - $ref: '#/components/schemas/Trader'
                        - type: object
                          properties:
                            identity:
                              $ref: '#/components/schemas/Identity'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
              example:
                traders:
                  - wallet: suqh5sHtr8HyJ7q8scBimULPkPpA557prMG47xCHQfK
                    pnl:
                      realized: 34046905.21
                      unrealized: -21888.49
                      total: 34025016.72
                    invested: 109263980.28
                    proceeds: 143310885.49
                    openPositions:
                      cost: 8866.33
                      value: 456.7
                    counts:
                      buys: 262568
                      sells: 167461
                      trades: 430029
                      tokensTraded: 100174
                      tokensHeldEver: 99238
                    averages:
                      buy: 429.1
                      sell: 855.79
                    tokens:
                      profitable: 66760
                      losing: 32098
                      closed: 98864
                    winRate: 67.53
                    roi: 31.14
                    timing:
                      firstTrade: 1728736984354
                      lastTrade: 1776621830045
                    updatedAt: '2026-04-19T18:03:50.110Z'
                    identity:
                      name: Cupsey
                      twitter: '@@Cupseyy'
                      avatar: >-
                        https://kol-avatar.solanatracker.io/suqh5sHtr8HyJ7q8scBimULPkPpA557prMG47xCHQfK
                  - wallet: 515vh1DrPuwMATt9Zoq9kP4sJL9fyojA1dHJu4DQpNRp
                    pnl:
                      realized: 29933166.94
                      unrealized: -258.98
                      total: 29932907.96
                    invested: 5720055.94
                    proceeds: 35653222.88
                    openPositions:
                      cost: 1896.55
                      value: 1719.01
                    counts:
                      buys: 26128
                      sells: 20337
                      trades: 46465
                      tokensTraded: 4362
                      tokensHeldEver: 4353
                    averages:
                      buy: 255.21
                      sell: 1753.12
                    tokens:
                      profitable: 3348
                      losing: 654
                      closed: 4002
                    winRate: 83.66
                    roi: 523.3
                    timing:
                      firstTrade: 1745802770409
                      lastTrade: 1776622371825
                    updatedAt: '2026-04-19T18:12:51.887Z'
                    identity:
                      name: crypto cir...
                      twitter: null
                      avatar: >-
                        https://kol-avatar.solanatracker.io/515vh1DrPuwMATt9Zoq9kP4sJL9fyojA1dHJu4DQpNRp
                pagination:
                  hasMore: true
                  nextCursor: >-
                    eyJzb3J0VmFsdWUiOjI5OTMzMTY2Ljk0MDg2ODAzNSwidGllQnJlYWtlciI6IjUxNXZoMURyUHV3TUFUdDlab3E5a1A0c0pMOWZ5b2pBMWRISnU0RFFwTlJwIn0=
                  count: 2
                  total: 2
        '400':
          description: Invalid request parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: typescript
          label: SDK
          source: |
            import { Client } from '@solana-tracker/data-api';

            const client = new Client({ apiKey: 'YOUR_API_KEY' });

            const data = await client.getPnlV2KOLLeaderboard({ limit: 50 });
      x-code-samples:
        - lang: typescript
          label: SDK
          source: |
            import { Client } from '@solana-tracker/data-api';

            const client = new Client({ apiKey: 'YOUR_API_KEY' });

            const data = await client.getPnlV2KOLLeaderboard({ limit: 50 });
components:
  parameters:
    direction:
      name: direction
      in: query
      description: Sort direction.
      schema:
        type: string
        enum:
          - asc
          - desc
        default: desc
    limit:
      name: limit
      in: query
      description: Number of results per page.
      schema:
        type: integer
        default: 100
    cursor:
      name: cursor
      in: query
      description: >-
        Opaque pagination cursor returned from the previous page's
        `pagination.nextCursor`.
      schema:
        type: string
  schemas:
    Trader:
      type: object
      description: Leaderboard entry for a trader wallet.
      properties:
        wallet:
          type: string
        pnl:
          $ref: '#/components/schemas/PnlBlock'
        invested:
          type:
            - number
            - 'null'
        proceeds:
          type:
            - number
            - 'null'
        openPositions:
          type: object
          properties:
            cost:
              type:
                - number
                - 'null'
            value:
              type:
                - number
                - 'null'
        counts:
          type: object
          properties:
            buys:
              type: integer
            sells:
              type: integer
            trades:
              type: integer
            tokensTraded:
              type: integer
            tokensHeldEver:
              type: integer
        averages:
          type: object
          properties:
            buy:
              type:
                - number
                - 'null'
            sell:
              type:
                - number
                - 'null'
        tokens:
          type: object
          properties:
            profitable:
              type: integer
              description: Number of tokens closed at a profit.
            losing:
              type: integer
              description: Number of tokens closed at a loss.
            closed:
              type: integer
              description: Total tokens where position is fully closed.
        winRate:
          type:
            - number
            - 'null'
          description: Percentage of closed positions that were profitable.
        roi:
          type:
            - number
            - 'null'
          description: Return on investment percentage.
        timing:
          type: object
          properties:
            firstTrade:
              type:
                - integer
                - 'null'
            lastTrade:
              type:
                - integer
                - 'null'
        updatedAt:
          type:
            - string
            - 'null'
          format: date-time
    Identity:
      type: object
      description: >-
        Unified wallet identity. Only fields with known values are returned; a
        wallet can carry multiple tags at once.
      properties:
        name:
          type:
            - string
            - 'null'
          description: Display name, if known.
        twitter:
          type:
            - string
            - 'null'
          description: Twitter/X handle, if known.
        avatar:
          type:
            - string
            - 'null'
          format: uri
          description: Avatar image URL.
        type:
          type:
            - string
            - 'null'
          description: >-
            Primary label for single-badge UIs, such as `kol`, `developer`,
            `pool`, `bot`, `hacker`, `spam_dusting`, `exchange`, or a platform
            tag.
        tags:
          type: array
          items:
            type: string
          description: >-
            All resolved labels for the wallet, including KOL, platform, pool,
            developer, bot, arbitrage, hacker, spam-dusting, or exchange tags.
        platforms:
          type: array
          items:
            type: string
          description: >-
            Normalized trading frontend tags such as `axiom`, `bloom`, or
            `photon`. Query filters also accept `axiom-flash`, which is
            normalized to `axiom` in identity responses.
        bot:
          type: object
          properties:
            name:
              type:
                - string
                - 'null'
            avatar:
              type:
                - string
                - 'null'
              format: uri
        pool:
          type: object
          properties:
            program:
              type:
                - string
                - 'null'
            poolAddress:
              type:
                - string
                - 'null'
        developer:
          type: object
          properties:
            token:
              type:
                - string
                - 'null'
            via:
              type: array
              items:
                type: string
            pools:
              type: array
              items:
                type: string
            creationTx:
              type:
                - string
                - 'null'
            createdAt:
              type:
                - integer
                - 'null'
              description: Unix timestamp in seconds.
        hacker:
          type: object
          description: Curated exploit/scam wallet label, when known.
          properties:
            label:
              type:
                - string
                - 'null'
        spamDusting:
          type: object
          description: Curated spam-dusting wallet label, when known.
          properties:
            label:
              type:
                - string
                - 'null'
        exchange:
          type: object
          description: Known centralized exchange hot wallet label, when known.
          properties:
            name:
              type:
                - string
                - 'null'
    Pagination:
      type: object
      description: Cursor-based pagination metadata.
      properties:
        hasMore:
          type: boolean
          description: Whether more pages exist after this one.
        nextCursor:
          type:
            - string
            - 'null'
          description: >-
            Opaque cursor to pass as `?cursor=` for the next page. Null when
            there are no more results.
        count:
          type: integer
          description: Number of items returned in this page.
        total:
          type: integer
          description: Total number of matching items across all pages.
        pnlMode:
          type: string
          enum:
            - strict
            - adjusted
            - raw
          description: Resolved PnL treatment mode when the endpoint supports `pnlMode`.
        enrich:
          type: array
          description: List of enrichment modules applied to the response when supported.
          items:
            type: string
      required:
        - hasMore
        - nextCursor
        - count
        - total
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message.
      required:
        - error
    PnlBlock:
      type: object
      description: Realized, unrealized, and total profit/loss in USD.
      properties:
        realized:
          type:
            - number
            - 'null'
          description: Profit/loss from closed trades (tokens fully or partially sold).
        realizedRaw:
          type:
            - number
            - 'null'
          description: >-
            Unfiltered realized PnL before `pnlMode` adjustments. Present on
            position rows and leaderboard period stats when available.
        unrealized:
          type:
            - number
            - 'null'
          description: >-
            Paper profit/loss on tokens still held, based on current market
            price.
        total:
          type:
            - number
            - 'null'
          description: Sum of realized + unrealized PnL.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API Key for authentication

````