# Get the holders of a Robinhood Chain token (token holders API)

> Robinhood Chain token holders API: get any token's top holders in one call, with balance, share of supply, USD value, labels, holder count and top-10 share.

Source: https://docs.crius.sh/guides/get-token-holders/ · Updated 2026-10-28

Short answer

The Robinhood Chain token holders API is `GET /v1/robinhood/token/{address}/holders`, with a Free API key (2 credits). It returns the holder `count`, `distribution.top10_pct` (the top-10 share without pools, lockers and burn addresses) and up to 500 `holders[]` ranked by balance, each with `address`, `balance`, `pct`, `value_usd`, `value_eth` and a `label` for infrastructure.

[GET `/token/{address}/holders`](https://docs.crius.sh/reference/holders/live-holders/) [GET `/token/{address}/holders/snapshot`](https://docs.crius.sh/reference/holders/holder-snapshot/) [GET `/token/{address}/bubblemap`](https://docs.crius.sh/reference/wallet-graph/bubble-map/)

A token’s holders are the addresses with a non-zero balance, ranked by how much they hold. One call to the Crius API returns the current list for any Robinhood Chain token with each holder’s share of supply and USD value, the total holder count, and how concentrated the supply is in the ten largest real holders. Pools, lockers and burn addresses are labeled so you can tell them apart from wallets. It’s the Crius token holders API for Robinhood Chain, and it works for every ERC-20 on the chain, from launchpad tokens to tokenized stocks.

## Get the holder list in one call

Example [Free plan · 2 credits](https://docs.crius.sh/reference/holders/live-holders/)

### Charge AI (CHARGE): 178 holders, top 10 hold 13.4%

Who holds Charge AI (0x7b8892cea949bc60d494681d1bc3ea96071ab0b8), a Pons token that graduated to Uniswap v4, and how concentrated is it?

GET/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/holders?limit=5&exclude=infra

 

**cURL**

```bash
curl "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/holders?limit=5&exclude=infra" \
  -H "x-api-key: $CRIUS_API_KEY"
```

**JavaScript**

```js
const res = await fetch("https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/holders?limit=5&exclude=infra", {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.crius.sh/v1/robinhood/token/0x7b8892cea949bc60d494681d1bc3ea96071ab0b8/holders?limit=5&exclude=infra",
    headers={"x-api-key": os.environ["CRIUS_API_KEY"]},
)
body = r.json()
print(body["data"])
```

**Real response 200 Captured Oct 28, 2026 · 67 lines (arrays trimmed)**

```json
{
  "data": {
    "balances": "verified_onchain",
    "count": 178,
    "distribution": {
      "top10_pct": 13.436
    },
    "history": "complete",
    "holders": [
      {
        "address": "0x1860e8b874ed7742ae5459af731687ecb576c9fd",
        "balance": 28729479.389247917189540117,
        "label": null,
        "pct": 2.87295,
        "rank": 1,
        "value_eth": 0.0474081,
        "value_usd": 111.806
      },
      {
        "address": "0x346f5777f5652bd561dcd830e638bc40d3e1cf3d",
        "balance": 25566954.227971953484331514,
        "label": null,
        "pct": 2.5567,
        "rank": 2,
        "value_eth": 0.0421894,
        "value_usd": 99.4981
      },
      {
        "address": "0xa975e46d6552fb0ef85f7e9f7b640a058dc368bd",
        "balance": 23260835.335709034922247096,
        "label": null,
        "pct": 2.32608,
        "rank": 3,
        "value_eth": 0.038384,
        "value_usd": 90.5235
      },
      {
        "address": "0xf4e322c50010e00878b8d6bbb2c495d90097e58f",
        "balance": 19090692.939108585371870819,
        "label": null,
        "pct": 1.90907,
        "rank": 4,
        "value_eth": 0.0315026,
        "value_usd": 74.2947
      },
      {
        "address": "0x8e6be350c1276d3276cead49859aa435d77ac9eb",
        "balance": 12214695.452807030766083489,
        "label": null,
        "pct": 1.22147,
        "rank": 5,
        "value_eth": 0.0201561,
        "value_usd": 47.5356
      }
    ],
    "ledger_reliable": true
  },
  "meta": {
    "block": 100436633,
    "block_age_ms": 414,
    "block_ts": 1793228150000,
    "chain": "robinhood",
    "finalized_block": 100427397,
    "lag_ms": 17,
    "safe_block": 100431079
  }
}
```

What this tells you

-   `count: 178` holders and `distribution.top10_pct: 13.436`: the ten largest real holders own about 13% of the supply, a spread-out token.
-   `exclude=infra` leaves the Uniswap v4 PoolManager, the Pons launch locker and the burn address out of the list, so rank 1 is already a real holder: `0x1860e8b874ed7742ae5459af731687ecb576c9fd`, with `pct: 2.87295`, worth `value_usd: 111.806` (`value_eth: 0.0474081`). Its `label` is `null`: an ordinary address.
-   Ranks 2 to 5 hold 2.5567%, 2.32608%, 1.90907% and 1.22147%. The top five add up to about 10.9%, so ranks 6 to 10 share the remaining 2.5% of the top-10 figure.
-   No single wallet holds 3% or more: the fifth-largest, `0x8e6be350c1276d3276cead49859aa435d77ac9eb`, is worth `value_usd: 47.5356`.
-   `balances: "verified_onchain"`, `ledger_reliable: true` and `history: "complete"`: the balances were checked against the token contract at `meta.block` 100436633, and the count covers the token’s whole history.

[Live holders reference](https://docs.crius.sh/reference/holders/live-holders/) [Data looks wrong? Report it](mailto:support@crius.sh?subject=Wrong%20data%20in%20docs%20example%3A%20Charge%20AI%20\(CHARGE\)%3A%20178%20holders%2C%20top%2010%20hold%2013.4%25&body=Page%3A%20https%3A%2F%2Fdocs.crius.sh%2Fguides%2Fget-token-holders%2F%23charge-holders%0ARequest%3A%20GET%20%2Fv1%2Frobinhood%2Ftoken%2F0x7b8892cea949bc60d494681d1bc3ea96071ab0b8%2Fholders%3Flimit%3D5%26exclude%3Dinfra%0A%0AWhat's%20wrong%20or%20missing%3F%0A%0A)

## What the fields mean

| Field | Meaning |
| --- | --- |
| `count` | Addresses holding a balance now. `null` when the history isn't complete or the ledger isn't reliable for this token. |
| `distribution.top10_pct` | Share of total supply held by the ten largest holders that aren't infrastructure (pools, lockers, burn addresses). |
| `holders[].rank` | Position by balance, 1 = largest. |
| `holders[].address` | The holder's address. |
| `holders[].balance` | Token balance in whole tokens (decimals applied). |
| `holders[].pct` | Share of total supply, in percent. |
| `holders[].value_usd`, `value_eth` | What the balance is worth at the current price. |
| `holders[].label` | What the address is when Crius knows it: a pool, the v4 PoolManager, a locker, the burn address, the dev. `null` for an ordinary wallet. |
| `balances` | `verified_onchain` when balances were read from the token's `balanceOf`; `ledger` when they come from Transfer events only. |
| `ledger_reliable` | `false` when more than a fifth of the top holders' event balances disagree with the chain (reflection or rebasing tokens). |
| `history` | `complete` when every transfer since the token's creation is indexed, else `partial`. |

The list is live: it reflects the block in `meta.block`. For holders at a past moment (a block, a time, or the block where the market cap first crossed $50k), use the [holder snapshot](https://docs.crius.sh/guides/get-historical-holders/). For how holders are classified (infrastructure, smart accounts, snipers, whales), see [Trader attribution & wallet tags](https://docs.crius.sh/concepts/attribution/).

## Reading concentration

A high top-10 share is the classic warning sign: a few wallets that can dump on everyone else. Two things make the raw number misleading on Robinhood Chain, and the API handles both:

-   **Pooled and locked supply isn’t held by anyone.** A graduated launchpad token keeps most of its supply in the Uniswap v4 PoolManager and the launchpad’s locker. Counting those would make every token look 80% concentrated. `top10_pct` leaves them out.
-   **One person can own many wallets.** Ten wallets at 1% each might be one buyer. The holder list can’t see that; the [bubble map](https://docs.crius.sh/guides/read-a-bubble-map/) links holders that were funded by the same wallet or sent tokens to each other.

## Use it in your app

1.  **Get a Free key.** `/holders` needs the Free plan or higher and costs 2 credits per call. Send the key in the `x-api-key` header. See [Plans & limits](https://docs.crius.sh/plans-and-limits/).
    
2.  **Ask for as many rows as you show.** `limit` takes 1 to 500. A token page usually needs 20 to 100; a concentration check needs only `distribution.top10_pct`, so `limit=10` is enough.
    
3.  **Separate infrastructure from wallets.** Pass `exclude=infra` for a wallets-only list, or keep the rows and show `label` next to the address. Don’t add up `pct` across all rows to measure concentration: use `top10_pct`.
    
4.  **Check the quality flags.** If `ledger_reliable` is `false` or `count` is `null`, show the list but don’t present the count as exact.
    

```js
// Top holders of a token, with infrastructure marked.
const token = "0x7b8892cea949bc60d494681d1bc3ea96071ab0b8";
const res = await fetch(`https://api.crius.sh/v1/robinhood/token/${token}/holders?limit=20`, {
  headers: { "x-api-key": process.env.CRIUS_API_KEY },
});
const { data, meta } = await res.json();

console.log(`${data.count ?? "?"} holders, top 10 hold ${data.distribution.top10_pct}% (block ${meta.block})`);
for (const h of data.holders) {
  console.log(h.rank, h.address, `${h.pct}%`, `$${h.value_usd ?? "?"}`, h.label ?? "wallet");
}
```

Holders over time

The live list answers “who holds it now”. For “who held it before the pump”, use the [holder snapshot](https://docs.crius.sh/guides/get-historical-holders/); for “who held through the whole run”, the [holder cohort](https://docs.crius.sh/guides/find-diamond-hand-holders/); and for the number of holders day by day, [holder count history](https://docs.crius.sh/guides/track-holder-count/).

## Frequently asked questions

**Is there a Robinhood Chain token holders API?**

Yes. The Crius API keeps a holder ledger for every ERC-20 on Robinhood Chain from block one. `GET /v1/robinhood/token/{address}/holders` returns the live list (Free plan), `/holders/snapshot` the holders at a past block, time or market cap, and `/holders/history` the holder count over time (Starter plan).

**How do I get the holders of a Robinhood Chain token?**

Send `GET https://api.crius.sh/v1/robinhood/token/{address}/holders` with your key in the `x-api-key` header. The response has the holder `count`, the top-10 concentration in `distribution.top10_pct` and the ranked list in `holders[]`. It works for every ERC-20 on Robinhood Chain (chain id 4663), not only launchpad tokens.

**How many holders can I get in one call?**

`limit` goes up to 500 (default 100). `/holders` has no cursor, so 500 is the deepest it goes. For a longer list, page through [`/holders/snapshot?at=now`](https://docs.crius.sh/reference/holders/holder-snapshot/) with `cursor` (500 per page, the next page is in `meta.next_cursor`); it costs 5 credits per page instead of 2.

**Why is the biggest holder a pool or a locker?**

Tokens waiting in a pool or locked in a launch locker sit at a contract address, so they show up as holders. Crius marks them with a `label` (`uniswap_v4_pool_manager`, `pons_v2_launch_locker`, `burn`…) and leaves them out of `distribution.top10_pct`, so concentration is measured over real holders only.

**Are the balances accurate for reflection or rebasing tokens?**

Each listed balance is checked against the token's own `balanceOf` at the indexed head (`balances: "verified_onchain"`), so tokens whose Transfer events don't match their balances can't inflate the list. If more than a fifth of the top holders disagree with the chain, `ledger_reliable` is `false` and `count` is `null` rather than a wrong number.

**Do I need an API key for holders?**

Yes, a Free key is enough. Without a key the call returns `403 plan_required` with `required_plan: "free"`. A Free key takes a minute at [dashboard.crius.sh](https://dashboard.crius.sh); see [Plans & limits](https://docs.crius.sh/plans-and-limits/).

## Related

[Guide **Historical holders** Get a Robinhood Chain token's holders at any past block, time, market cap or launch stage, valued at that moment's price, with cost basis per holder. Read](https://docs.crius.sh/guides/get-historical-holders/) [Guide **Holder count history** Chart a Robinhood Chain token's holder count over time: min, max, new and exited holders per interval, with your own definition of a holder. Real example. Read](https://docs.crius.sh/guides/track-holder-count/) [Guide **Read a bubble map** Get a Robinhood Chain token's top holders as a graph, with the funding and transfer links that group them. Real examples, with and without clusters. Read](https://docs.crius.sh/guides/read-a-bubble-map/) [Concept **Holder classes** How the Crius API tells real holders from pools, the PoolManager, lockers and contracts, and how it tags devs, snipers, whales and smart accounts. Read](https://docs.crius.sh/concepts/holder-classes/) [Guide **Wallet token balances** Get every token balance of a Robinhood Chain wallet (USDG, tokenized stocks, ETH) in USD in one call, one token's balances across wallets, and batch prices. Read](https://docs.crius.sh/guides/get-wallet-token-balances/) [API reference **Live holders API** The current holder list, ranked by balance, with each holder's share of supply, USD value and labels (pools, lockers, burn addresses, the dev). Read](https://docs.crius.sh/reference/holders/live-holders/)
