GET /holders/list/{id}
GET

/v1/holders/list/{id}

Paginated holder richlist with acquisition tracking

AuthNone — works without a key

Request

GEThttps://api.xrpl.to/v1/holders/list/0dd550278b74cb6690fdae351e8e0df3
Path parameterValueDescription
idA token id: its md5, slug or issuer_currency
Query parameterValueDescription
offsetint
limitint (default: 20, max 200)
freezebool - only frozen trustlines
sortbalance|value|holding|percent|change24h|pnl (value/percent are balance/holding aliases; default: balance desc)
orderasc|desc
searchaccount address (min 3 chars)
minBalancefloat - min balance (token units)
maxBalancefloat - max balance (token units)
curl 'https://api.xrpl.to/v1/holders/list/0dd550278b74cb6690fdae351e8e0df3'

Response

200Example response267 ms · just now · 2.8 KB · 119 lines
https://api.xrpl.to/v1/holders/list/0dd550278b74cb6690fdae351e8e0df3
{
  "success": true,
  "took": 239,
  "summary": {
    "top10Hold": 89.4,
    "top20Hold": 91.8,
    "top50Hold": 94.2,
    "top100Hold": 95.6,
    "gini": 0.9997,
    "hhi": 722,
    "frozen": 2
  },
  "length": 67326,
  "richList": [
    {
      "account": "rEq4b7nbL2ep44Fgk9bPwpynGRjyESpf5B",
      "balance": 146750042.7810765,
      "freeze": false,
      "balance24h": 145750042.7810765,
      "id": 1,
      "holding": 14.15,
      "isCreator": false,
      "rank": 1,
      "xrpBalance": 174111002.398132,
      "lastActive": 1789946711,
      "name": "Gemini",
      "domain": null,
      "funder": {
        "account": "raBQUYdAhnnojJQ6Xi3eXztZ74ot24RDq1",
        "name": "Gemini",
        "fundedCount": 11112,
        "fundedAt": 1761243532000,
        "amountXrp": 2.42
      }
    },
    {
      "account": "rDgBDkeTe5rbtRn2DJP8kHvQTuw28h8UVr",
      "balance": 112435492.3803756,
      "freeze": false,
      "balance24h": 109853104.4903986,
      "id": 2,
      "holding": 10.84,
      "isCreator": false,
      "rank": 2,
      "xrpBalance": 876.62944,
      "lastActive": 1789972940,
      "name": null,
      "domain": null,
      "funder": {
        "account": "rDAE53VfMvftPB4ogpWGWvzkQxfht6JPxr",
        "name": "Binance",
        "fundedCount": 179546,
        "fundedAt": 1642593811000,
        "amountXrp": 53.696
      }
    },
    {
      "account": "r39TAwuqkA5BNxxfL5YXewRGtCgBcADjcx",
      "balance": 93845990.8312277,
      "freeze": false,
      "balance24h": 74148613.0984097,
      "id": 3,
      "holding": 9.05,
      "isCreator": false,
      "rank": 3,
      "xrpBalance": 302622.267182,
      "lastActive": 1789825890,
      "name": null,
      "domain": null,
      "funder": {
        "account": "rNGkoJhnzWTs9RtEnCSziqNLpxfx3ysf8J",
        "name": null,
        "fundedCount": 4,
        "fundedAt": 1743532350000,
        "amountXrp": 20
      }
    },
    {
      "account": "rfxRtJ3apsuJs5TauCHCZB7ab4C1WvoBs",
      "balance": 80000000.0000102,
      "freeze": false,
      "id": 4,
      "holding": 7.71,
      "isCreator": false,
      "rank": 4,
      "xrpBalance": 1.99998,
      "lastActive": 1779800861,
      "name": null,
      "domain": null,
      "funder": {
        "account": "r4vFWRRZBXsWipgCLJBs6EqnMh7MRHbhyp",
        "name": null,
        "fundedCount": 1,
        "fundedAt": 1779460210000,
        "amountXrp": 1.99999
      }
    },
    {
      "account": "r4vFWRRZBXsWipgCLJBs6EqnMh7MRHbhyp",
      "balance": 79999000,
      "freeze": false,
      "id": 5,
      "holding": 7.71,
      "isCreator": false,
      "rank": 5,
      "xrpBalance": 480666.555287,
      "lastActive": 1788049990,
      "name": null,
      "domain": null,
      "funder": {
        "account": "r3zP2xtUwAQUpgnXqLSVMMhNPumkaiij5r",
        "name": null,
        "fundedCount": 6,
        "fundedAt": 1753879482000,
        "amountXrp": 11228.138996
      }
    }
  ]
}

Long arrays and strings are shortened in the example; Send request for the full answer.

Shapeas documented
{
  success,
  took,
  summary: {
    top10Hold,
    top20Hold,
    top50Hold,
    top100Hold,
    frozen
  },
  length (total holders; filtered count when search/minBalance/maxBalance set),
  richList[]: {
    account,
    balance,
    holding,
    rank,
    freeze,
    frozenByIssuer?,
    isCreator,
    xrpBalance,
    lastActive,
    name,
    domain,
    funder,
    tradedPct?,
    tradeCount?,
    source?,
    acquisition?,
    isAMM?,
    pnl? (realized+residual XRP),
    roi?,
    unrealized?,
    bought?/sold? (XRP volume),
    lastTrade?
  }
}

What it does

Paginated holder richlist with acquisition tracking

A token id can be its md5, slug or issuer_currency. How to build an md5 →
OpenAPI