/mpt/searchmpt-searchCursor-paginated free-text search across multi-purpose token issuances. Matches the query string (ILIKE) against the XLS-89 name and ticker fields, the on-chain issuance_id and issuer_account, and the curated issuer display name on account_metadata. Results are ranked by trailing-24h XRP volume (DESC, NULLS LAST), then holder count, then creation time — most-active issuances surface first. Returns the full mptDetail shape with the same metadata / metrics inclusion flags as /mpt/list.
| 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 |
|---|---|---|---|
cursor | string | ||
limit | integer | 20 | |
queryrequired | string | Free-text search applied to MPT name, ticker, issuance_id, issuer account, and curated issuer display name. | |
metadata | boolean | ||
metrics | boolean |
| Field | Type | Description |
|---|---|---|
items | object[] | Page of results. |
items[]. | string | MPTokenIssuance ID (same as `issuance_id`). Top-level alias for shape parity with token / NFT detail. |
items[]. | string | On-chain MPTokenIssuance ID (hex string). |
items[]. | string | XRPL classic address of the issuer. |
items[]. | integer | Ledger sequence where the issuance was created. |
items[]. | object | Ledger sequence where the issuance was destroyed; `null` while active. |
items[]. | boolean | True once `destroyed_at_ledger` is set. |
items[]. | object | Curated metadata about the MPT asset and its issuer. Present when `metadata=true` (the default); omitted entirely when the caller passes `metadata=false`. |
items[]. | object | |
items[]. | object | Display name of the MPT asset (XLS-89 `n`). |
items[]. | object | Uppercase ticker symbol — ≤6 chars, A-Z 0-9 (XLS-89 `t`). `null` when the metadata didn't declare one. |
items[]. | object | Asset purpose / description (XLS-89 `d`). |
items[]. | object | URL to the asset logo (XLS-89 `i`). HTTPS or `ipfs://…`. |
items[]. | object | XLS-89 `ac`: top-level asset classification (`rwa` / `memes` / `wrapped` / `gaming` / `defi` / `other`). |
items[]. | object | XLS-89 `as`: narrower sub-category. Required by the spec when `asset_class = "rwa"`; free-text otherwise. |
items[]. | object | Issuer display name as declared in the metadata (XLS-89 `in`). |
items[]. | object[] | Categorized external links published by the issuer (XLS-89 `us`). Empty array when none declared. |
items[]. | object | Free-form supplementary metadata (XLS-89 `ai`) — typically rate / term / settlement details for RWAs. Schema is issuer-defined. |
items[]. | object | Raw on-chain MPTokenMetadata field — hex-encoded VL bytes exactly as the ledger emits them. Hex-decodes to either a URL (`ipfs://…`, `https://…`, `ar://…`) or an inline JSON literal (`{…}`) when the metadata fits inside the on-chain field. The ledger value is preserved verbatim so callers can verify on-chain bytes against the live ledger; the decoded form is served via the resolver-mirrored copy on `metadata_url` when the URI was external. |
items[]. | object | CDN URL of the mirrored metadata.json. Populated when the resolver hex-decodes `metadata_uri` to an external URL (http/https/ipfs/ar), fetches the bytes, and uploads them to `assets/mpt/<issuance_id>/metadata.json`. `null` when the on-chain URI was inline JSON (nothing to mirror) or when the resolver has not processed this row yet. |
items[]. | object | |
items[]. | string | XRPL classic address of the issuer. |
items[]. | object | Issuer display name from `account_metadata` / TOML / curator. |
items[]. | object | Verified domain associated with the issuer account. |
items[]. | object | True when the issuer has completed third-party KYC. |
items[]. | object | Live supply / holder metrics + flags. Present when `metrics=true`; omitted when the caller leaves it at the default `false`. |
items[]. | null | Always `null` for MPTs — MPTs do not use trustlines. Field present for shape parity with `/token/list`. |
items[]. | integer | Current count of holders with a positive balance. |
items[]. | string | Total outstanding supply (decimal string in token base units). |
items[]. | string | Supply minus issuer-held balance, computed at request time from `mpt_holders` for the (issuance_id, issuer_account) pair. Equals `supply` when the issuer holds none of its own MPT (the common case). |
items[]. | object | Latest observed XRP-denominated price (decimal string). `null` when the MPT has no XRP-paired trade history. |
items[]. | object | Computed at request time: `price × supply`. `null` when price is unknown. |
items[]. | object | Fully-diluted valuation: `price × max_supply`. `null` when price or `max_supply` is unknown. |
items[]. | null | Always `null` for MPTs — MPTs are not yet supported by the AMM module. Field present for shape parity. |
items[]. | null | Always `null` for MPTs — escrow vesting is an IOU concept. Field present for shape parity. |
items[]. | object | Rolling price change per window. All windows source from `mpt_metrics_v`, which reads `ohlcv_5m` (5m / 1h windows) and `ohlcv_1h` (6h / 24h / 7d). NULL when the MPT has no XRP-paired trade pair or no buckets materialised in the window. |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | Rolling volume windows + lifetime total + XRPL dominance. |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | Trailing 7d XRP-denominated volume (decimal string). |
items[]. | object | Cumulative lifetime XRP volume. `null` until denormalized. |
items[]. | object | |
items[]. | object | Rolling trade-count windows per same-length bucket. |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | Trade count over the last 7d. |
items[]. | integer | Distinct taker addresses over the last 24h, sourced from the HLL union over `ohlcv_1h`. Returns 0 when the MPT has no XRP-paired trade history. |
items[]. | integer | Distinct taker addresses over the last 7d, sourced from the HLL union over `ohlcv_1h`. Returns 0 when the MPT has no XRP-paired trade history. |
items[]. | object | Buy/sell breakdown over the last 24h, inferred from the taker's XRP balance delta sign on each trade. All sub-fields default to 0 when the MPT had no trades in the window. |
items[]. | object | |
items[]. | object | |
items[]. | string | Composite 0–100 quality score. Rubric (additive, capped at 100): +20 issuer verified, +15 issuer renounced, +15 metadata present (name + icon), +10 holders ≥ 100, +10 recent activity (≥10 trades in 24h), +10 has XRP-paired trade pair. |
items[]. | object | Hard cap on supply, decimal string. `null` when uncapped. |
items[]. | integer | Transfer fee in basis points (0–50_000; 50_000 = 50%). |
items[]. | integer | Decimal places for display (0–15). `raw_amount / 10^asset_scale` = human-readable value. |
items[]. | object | Decoded MPT issuance flag bits. |
items[]. | boolean | Holders must be authorized by the issuer. |
items[]. | boolean | Issuer can lock holder balances. |
items[]. | boolean | Issuer can claw back tokens. |
items[]. | object | Unix-seconds timestamp of the most recent trade across any pair this MPT trades on. |
nextCursor | object | Cursor to fetch the next page, or null if this is the last page. |
{
"items": [
{
"id": "00000064F0E2A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6E7F8",
"issuance_id": "00000064F0E2A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6E7F8",
"issuer": "rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY",
"created_at_ledger": 91656571,
"destroyed_at_ledger": null,
"burned": false,
"metadata": {
"token": {
"name": "Pepper Treasury Bill",
"ticker": "PEPPS",
"desc": "Tokenized short-duration treasuries with daily NAV.",
"icon": "https://cdn.pepper.fund/icon.png",
"asset_class": "rwa",
"asset_subclass": "short-duration-treasury",
"issuer_name": "Pepper Treasury",
"urls": [
{
"u": "https://pepper.fund",
"c": "website",
"t": "Pepper Fund"
},
{
"u": "https://x.com/pepperfund",
"c": "social",
"t": "Twitter"
}
],
"additional_info": {
"settlement_currency": "USD",
"daily_rate_pct": "4.85"
},
"metadata_uri": "68747470733A2F2F70657070657266756E642F2E77656C6C2D6B6E6F776E2F6D70742D6D657461646174612E6A736F6E",
"metadata_url": "https://cdn.honeycluster.io/assets/mpt/00000064F0E2A1B2C3D4E5F6A7B8C9D0E1F2A3B4C5D6E7F8/metadata.json"
},
"issuer": {
"address": "rPEPPER7kfTD9w2To4CQk6UCfuHM9c6GDY",
"name": "Pepper Treasury",
"domain": "pepper.fund",
"kyc": true
}
},
"metrics": {
"trustlines": null,
"holders": 142,
"supply": "5000000.000000",
"circulating_supply": "5000000.000000",
"price": "1.0023",
"market_cap": "5011500.00",
"fdv": "10023000.00",
"tvl": null,
"vesting": null,
"price_change": {
"last_5m": {
"absolute": null,
"percent": null
},
"last_1h": {
"absolute": null,
"percent": null
},
"last_6h": {
"absolute": null,
"percent": null
},
"last_24h": {
"absolute": "0.0034",
"percent": "0.34",
"since_inception": false
},
"last_7d": {
"absolute": null,
"percent": null,
"since_inception": false
}
},
"volume": {
"last_5m": {
"value": null,
"change_absolute": null,
"change_percent": null
},
"last_1h": {
"value": null,
"change_absolute": null,
"change_percent": null
},
"last_6h": {
"value": null,
"change_absolute": null,
"change_percent": null
},
"last_24h": {
"value": "85432.55",
"change_absolute": null,
"change_percent": null
},
"last_7d": "612900.10",
"total": null,
"dominance": {
"last_24h": null
}
},
"txn": {
"last_5m": {
"value": null,
"change_absolute": null,
"change_percent": null
},
"last_1h": {
"value": null,
"change_absolute": null,
"change_percent": null
},
"last_6h": {
"value": null,
"change_absolute": null,
"change_percent": null
},
"last_24h": {
"value": 47,
"change_absolute": null,
"change_percent": null
},
"last_7d": null
},
"takers_24h": 31,
"takers_7d": 184,
"buy_sell_24h": {
"buys": {
"txns": 28,
"traders": 19,
"xrp": "4520.5"
},
"sells": {
"txns": 19,
"traders": 14,
"xrp": "3105.2"
}
},
"quality_score": "60",
"max_supply": "10000000.000000",
"transfer_fee_bps": 25,
"asset_scale": 6,
"flags": {
"require_auth": false,
"can_lock": true,
"can_clawback": true
},
"last_trade_at": 1745798300
}
}
],
"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": []
}