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

# Token holders

> The 100 largest holders, largest first. There is no further page.

The 100 largest holders, largest first, with what each bought, sold and earned on the token. There is no next page: the total count is `holders` on the [token](/api-reference/tokens/get).

`label` names holders that are not people (an exchange, a pool). `tags` are free-form wallet labels (`whale`, `kol`, `sniper`, …). `fundedBy` is who first funded the wallet, when known.


## OpenAPI

````yaml GET /v1/tokens/{chain}/{address}/holders
openapi: 3.1.0
info:
  title: Raze Market Data API
  version: 1.0.0
  description: >
    Multichain market data for tokens, trades, charts, holders, launchpads and
    wallets on

    Solana, Ethereum, BNB Chain, Base and Robinhood Chain, as REST snapshots and
    live streams.


    **Conventions, everywhere:**

    - Chains: `sol`, `eth`, `bsc`, `base`, `robinhood` (aliases `solana`,
    `ethereum`, `bnb`, `hood` and network ids work too).

    - EVM addresses are answered lowercase; Solana addresses are case-sensitive.

    - Amounts in USD end in `Usd`; percents are 0–100 and end in `Percent`;
    times are Unix **milliseconds**.

    - A value nobody knows is `null`, never `0`.

    - Success: `{"data": …}`, plus `"next"` on paged lists (pass it back as
    `cursor`, as given). A
      page can hold fewer rows than `limit`, even none, and still carry `next`: a list ends only
      where `next` is `null`.
    - Failure: `{"error": {"code", "message"}}` with status 400 (`bad_request`),
    401 (`unauthorized`),
      404 (`not_found`), 429 (`rate_limited`), 502 (`upstream_unavailable`), or 503 with a
      `Retry-After` header (`upstream_unavailable` on a page to ask for again, `server_busy` on a
      new live connection).
    - A Solana address that does not decode to a 32-byte key is a 400 wherever
    one token or wallet
      is named. Lists (`/v1/tokens?ids=`, `/v1/prices?tokens=`) leave out an id that looks like a
      Solana address (32 to 44 base58 characters) but is not a 32-byte key; an id that does not look
      like an address still fails the whole list with 400.

    **Auth:** send your key as `x-api-key`, `Authorization: Bearer <key>`, or
    `?apiKey=` (for

    WebSocket and EventSource, which cannot set headers). `/health` and
    `/v1/openapi.yaml` need no

    key.


    **Live:** one WebSocket at `/v1/ws` carries any number of channels (also at

    `wss://ws.raze.bot`); the same channels are available one per connection as
    Server-Sent Events

    at `/v1/stream/{channel}`. Every channel sends a `snapshot` frame first,
    then changes.
servers:
  - url: https://api.raze.bot
    description: Production
security:
  - ApiKeyHeader: []
  - Bearer: []
  - ApiKeyQuery: []
tags:
  - name: catalog
    description: Health, chains and token search
  - name: tokens
    description: Token snapshot, trades, candles, holders, top traders, image
  - name: discovery
    description: Trending, screener and launchpad boards
  - name: wallets
    description: Wallet leaderboard, stats, holdings, PnL and swaps
  - name: prices
    description: Native coin prices and token prices
  - name: live
    description: WebSocket and Server-Sent Events
paths:
  /v1/tokens/{chain}/{address}/holders:
    get:
      tags:
        - tokens
      summary: Token holders
      description: The 100 largest holders, largest first. There is no further page.
      operationId: getTokenHolders
      parameters:
        - $ref: '#/components/parameters/chain'
        - $ref: '#/components/parameters/address'
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
            maximum: 100
      responses:
        '200':
          description: Holders
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Holder'
              example:
                data:
                  - wallet: 9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM
                    amount: 7770515063166.43
                    percent: 8.83
                    valueUsd: 29347999.1
                    boughtUsd: 0
                    soldUsd: 0
                    pnlUsd: -11011519.6
                    realizedPnlUsd: -12899808.8
                    unrealizedPnlUsd: 1888289.2
                    buys: 0
                    sells: 0
                    tags: []
                    label: null
                    fundedBy: Binance
                    lastActiveAt: 1788763371000
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  parameters:
    chain:
      name: chain
      in: path
      required: true
      description: '`sol`, `eth`, `bsc`, `base` or `robinhood` (or an alias or network id)'
      schema:
        type: string
        example: sol
    address:
      name: address
      in: path
      required: true
      description: Token address (mint or contract)
      schema:
        type: string
        example: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
  schemas:
    Holder:
      type: object
      properties:
        wallet:
          type: string
        amount:
          type: number
          description: Whole tokens held
        percent:
          $ref: '#/components/schemas/num'
          description: Share of supply
        valueUsd:
          $ref: '#/components/schemas/num'
        boughtUsd:
          $ref: '#/components/schemas/num'
        soldUsd:
          $ref: '#/components/schemas/num'
        pnlUsd:
          $ref: '#/components/schemas/num'
        realizedPnlUsd:
          $ref: '#/components/schemas/num'
        unrealizedPnlUsd:
          $ref: '#/components/schemas/num'
        buys:
          $ref: '#/components/schemas/int'
        sells:
          $ref: '#/components/schemas/int'
        tags:
          type: array
          items:
            type: string
        label:
          $ref: '#/components/schemas/str'
          description: Exchange or pool name when the holder is not a person
        fundedBy:
          $ref: '#/components/schemas/str'
          description: Who first funded the wallet
        lastActiveAt:
          $ref: '#/components/schemas/int'
    num:
      type:
        - number
        - 'null'
    int:
      type:
        - integer
        - 'null'
    str:
      type:
        - string
        - 'null'
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - bad_request
                - unauthorized
                - not_found
                - rate_limited
                - upstream_unavailable
                - server_busy
            message:
              type: string
  responses:
    BadRequest:
      description: A parameter is missing or wrong
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: bad_request
              message: 'unknown chain ''xyz'', use one of: sol, eth, bsc, base, robinhood'
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
    Bearer:
      type: http
      scheme: bearer
    ApiKeyQuery:
      type: apiKey
      in: query
      name: apiKey

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.