/richlist/mpt/{issuanceId}richlist-mptPaginated richlist for a single MPT (Multi-Purpose Token) issuance, ordered by absolute balance DESC with the account address as a deterministic tiebreaker. Each row carries the holder's balance plus curated account metadata (name, verified, verifiedBy, category) when available. The issuer account and zero-balance holders are excluded. Reads from the latest mpt_richlist_snapshot row for this issuance — sourced from mpt_holders (which the streaming indexer keeps live) since MPTs don't use trustlines and the protocol exposes no gateway_balances-equivalent RPC. Same response shape as /richlist/token/{tokenSlug} so a single client renderer works across both surfaces.
| Name | Location | Details |
|---|---|---|
BearerAuth | Authorization header · bearer | JWT issued by the Honeycluster auth service for the `indexer` audience. Present as `Authorization: Bearer <token>`. |
| Name | Type | Default | Description |
|---|---|---|---|
issuanceIdrequired | string | MPTokenIssuance ID. Resolves to the latest captured snapshot for that issuance. |
| Name | Type | Default | Description |
|---|---|---|---|
cursor | string | ||
limit | integer | 50 |
| Field | Type | Description |
|---|---|---|
items | object[] | Holder rows ordered by |balance| DESC. |
items[]. | string | XRPL classic address of the holder. |
items[]. | string | Current MPT balance held by the account, as a decimal string in token base units. |
items[]. | object | Curated display name for the account, or `null` when metadata is unknown. |
items[]. | boolean | Whether the account's identity has been verified by a curated source. `false` when metadata is unknown. |
items[]. | object | Source that verified the account (e.g. `xrpscan`, `bithomp`), or `null`. |
items[]. | object | Classification for the account (e.g. `exchange`, `issuer`, `project`), or `null`. |
nextCursor | object | Opaque cursor to fetch the next page, or `null` when the current page is the last. |
{
"items": [
{
"address": "string",
"balance": "string",
"name": "string",
"verified": false,
"verifiedBy": "string",
"category": "string"
}
],
"nextCursor": "string"
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}