/richlist/mpt/{issuanceId}/inforichlist-mptInfoPer-MPT mirror of /richlist/token/{tokenSlug}/info. Returns totalHolders + totalSupply + totalHeld, plus byRange (%-of-supply buckets) and byPercentile (top-N percentile thresholds). Reads from the mpt_richlist_snapshot_daily continuous aggregate; falls back to an empty response when the snapshot worker hasn't yet captured this issuance. Identical response shape to the token-side info endpoint.
| 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. |
| Field | Type | Description |
|---|---|---|
totalHolders | integer | Number of non-issuer non-zero holders for this MPT in the latest snapshot. |
totalSupply | object | Issuance supply observed at snapshot time (decimal string). `null` when no snapshot exists yet. |
totalHeld | string | Sum of non-issuer holder balances in the latest snapshot, decimal string. |
byRange | object[] | Holder-count + balance-sum partitioned across %-of-supply buckets ([0, 0.001%), [0.001%, 0.01%), …, [25%, ∞)). Same boundaries as the token CAGG. |
byRange[]. | number | Inclusive lower bound for this bucket. XRP-side: balance in XRP. Token-side: balance as a percentage of total supply (e.g. `0.01` = 0.01%). |
byRange[]. | object | Exclusive upper bound, or `null` for the open-ended top bucket. Same unit as `min`. |
byRange[]. | integer | Number of accounts whose balance falls inside the half-open `[min, max)` range. |
byRange[]. | string | Sum of balances of accounts in this bucket, as a decimal string. XRP-side: in XRP. Token-side: in token base units. |
byPercentile | object[] | Top-N percentile thresholds — same 0.01% → 100% ladder as `XRP_RICHLIST_PERCENTILES`. |
byPercentile[]. | number | Top-N percentile as a decimal (e.g. `0.01` for "top 1%", `0.0001` for "top 0.01%", `1.0` for the entire population). |
byPercentile[]. | integer | Number of accounts in the top-N percentile (= ceil(percentile × totalHolders)). |
byPercentile[]. | object | Balance threshold such that every account in the top-N percentile holds at least this amount, as a decimal string. `null` when the dataset is empty. |
{
"totalHolders": 0,
"totalSupply": "string",
"totalHeld": "string",
"byRange": [
{
"min": 0,
"max": 0,
"accountCount": 0,
"sumBalance": "string"
}
],
"byPercentile": [
{
"percentile": 0,
"accountCount": 0,
"balanceAtOrAbove": "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": []
}