/composite/searchcomposite-searchSingle GET endpoint that returns matches across every asset/entity domain for a free-text query. Five buckets — tokens (IOU), mpts (XLS-33d Multi-Purpose Tokens), nfts, collections, accounts. Classification rules: a classic XRPL address (r + 24–34 base58) routes to accounts; a 64-char hex string routes to nfts by NFTokenID; a 48-char hex string routes to mpts by MPTokenIssuance ID; anything else triggers a case-insensitive substring match across token name / ticker / currency code, MPT XLS-89 name / ticker / issuer fields, NFT collection name, and account name. Each bucket returns up to limit items (default 10, max 25).
| 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 |
|---|---|---|---|
qrequired | string | Free-text query (1–100 chars). Classified on the server: a classic XRPL address routes to `accounts` (and surfaces any AMM `pools` whose amm_id / owner is that address); a 64-char hex string routes to `nfts` by NFTokenID; a 48-char hex string routes to `mpts` by MPTokenIssuance ID; anything else triggers a case-insensitive substring match across token name/ticker, NFT collection name, MPT name/ticker, account name, and AMM pools (amm_id, owner, asset codes/issuers, asset display names/tickers). | |
limit | integer | 10 |
| Field | Type | Description |
|---|---|---|
tokens | object[] | Tokens (IOU) matching the query (up to `limit`). |
tokens[]. | string | Token UUID primary key. |
tokens[]. | string | Token currency code (3-char ISO or 40-char hex). |
tokens[]. | string | Issuer classic XRPL address. |
tokens[]. | object | Display name (null when metadata missing). |
tokens[]. | object | Normalized display code (null when metadata missing). |
tokens[]. | object | Icon URL (null when metadata missing). |
mpts | object[] | Multi-Purpose Tokens matching the query (up to `limit`). Populated by direct MPTokenIssuance ID lookup or by ILIKE on XLS-89 name / ticker / issuer fields. |
mpts[]. | string | MPTokenIssuance ID (hex string). |
mpts[]. | string | Same as `id`; surfaced under the MPT-canonical name for shape parity with `/mpt/list` responses. |
mpts[]. | string | Issuer classic XRPL address. |
mpts[]. | object | Curated XLS-89 display name (null when metadata not yet resolved). |
mpts[]. | object | Curated XLS-89 ticker (null when not declared). |
mpts[]. | object | Curated XLS-89 icon URL (null when not declared). |
mpts[]. | object | XLS-89 asset class (`rwa` / `memes` / etc.). |
nfts | object[] | NFTs matching the query (up to `limit`). Populated by direct NFTokenID lookup when `q` is a 64-char hex string, OR by substring match against `nft_metadata.name` / `description` and against `nfToken.tokenId` / `issuer` for partial-prefix queries. |
nfts[]. | string | 64-char hex NFTokenID. |
nfts[]. | string | Minter classic XRPL address. |
nfts[]. | string | Current owner classic XRPL address. |
nfts[]. | integer | NFToken taxon (groups tokens into a collection). |
nfts[]. | object | Hex-encoded URI from the mint tx (null when absent). |
collections | object[] | NFT collections matching the query (up to `limit`). |
collections[]. | string | Collection UUID primary key. |
collections[]. | string | Minter classic XRPL address (part of the canonical slug). |
collections[]. | integer | NFToken taxon (second half of the canonical slug). |
collections[]. | string | Canonical slug — `issuer:taxon`. |
collections[]. | object | Collection display name (null when not set). |
collections[]. | object | Collection cover image URL (null when not set). |
collections[]. | integer | Number of NFTs currently in the collection. |
accounts | object[] | Accounts matching the query (up to `limit`). Populated directly when `q` is a classic XRPL address. |
accounts[]. | string | Classic XRPL address. |
accounts[]. | object | Display name (null when metadata missing). |
accounts[]. | object | Icon URL (null when metadata missing). |
accounts[]. | object | Account category: exchange | issuer | project | validator | launchpad | amm | gateway | other. |
accounts[]. | boolean | True when the account has been verified by a curated source. |
pools | object[] | AMM pools matching the query (up to `limit`). Populated by ILIKE on `amm_id`, `owner_address`, both asset currency codes, both asset issuer addresses, and each asset's display name / ticker. |
pools[]. | string | Pool UUID primary key. |
pools[]. | string | On-ledger AMM account identifier (XRPL classic address). |
pools[]. | string | `<asset1 ticker> / <asset2 ticker>` display label. |
pools[]. | string | Asset1 currency code. |
pools[]. | object | Asset1 issuer (null for XRP). |
pools[]. | string | Asset2 currency code. |
pools[]. | object | Asset2 issuer (null for XRP). |
pools[]. | integer | Trading fee in basis points. |
{
"tokens": [
{
"id": "0046f20d-4aa3-4c2e-b975-80d9d0895e7a",
"currencyCode": "4249547800000000000000000000000000000000",
"issuerAddress": "rBitcoiNXev8VoVxV7pwoQx1sSfonVP9i3",
"name": "BITx",
"ticker": "BITx",
"iconUrl": "https://bitx.fyi/bitx-images/bitx-logo.png"
}
],
"mpts": [],
"nfts": [],
"collections": [],
"accounts": [],
"pools": []
}| 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": []
}