Sandbox version
For experimental use only. Proceed with caution.
tokens
Get daily holder-count history for a token
get
/token/{tokenSlug}/holders/history
operationId: token-holderHistory

Returns a paginated daily holder-count series for the token. Each row is one calendar day's non-zero-balance holder count plus the token's totalSupply recorded at snapshot time. Pages are ordered oldest → newest internally; cursor walks BACK in time — nextCursor is the previous page's oldest day, and the next call (with cursor=…) returns the rows older than that. limit is the page size (default 30, max 365). Returns an empty page with nextCursor: null when no snapshots have been recorded yet.

Unlock protected endpoints

Enter your Bearer token once to enable every protected route in this API reference.

HTTP bearer

Saved for this browser tab only. The credential is never sent until you test an endpoint.

Authorizations
NameLocationDetails
BearerAuthAuthorization header · bearerJWT issued by the Honeycluster auth service for the `indexer` audience. Present as `Authorization: Bearer <token>`.
Path Parameters
NameTypeDefaultDescription
tokenSlug
required
string
Natural token identifier in `currency.issuer` form. Example: `USD.rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B`.
Query Parameters
NameTypeDefaultDescription
cursor
string
limit
integer30
Responses
200
application/json
Successful response
FieldTypeDescription
items
object[]
Daily holder-count snapshots ordered oldest → newest within the page. Empty when no snapshots exist yet.
items[].bucketDate
string
Snapshot date in `YYYY-MM-DD` form (UTC day bucket).
items[].holderCount
integer
Number of accounts with a positive balance of the token on the bucket date.
items[].totalSupply
object
Token's total supply at snapshot time, as a decimal string. `null` when supply was unknown for that bucket.
nextCursor
object
Opaque cursor for the next-older page, or `null` when this page is the oldest available. Pass it back as `cursor` to walk further back in time.
Example
Json
{
  "items": [
    {
      "bucketDate": "2026-04-23",
      "holderCount": 142,
      "totalSupply": "5000000.000000"
    },
    {
      "bucketDate": "2026-04-24",
      "holderCount": 148,
      "totalSupply": "5000000.000000"
    }
  ],
  "nextCursor": null
}
400
application/json
Invalid input data
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
401
application/json
Authorization not provided
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
403
application/json
Insufficient access
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
404
application/json
Not found
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}
500
application/json
Internal server error
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}