/token/{tokenSlug}/flowtoken-flowReturns a breadth-first graph rooted at the token's issuer, showing how XRP volume cascaded outward to early counterparties (up to maxDepth hops; default 3). Each node carries its depth, cumulative drops received from upstream nodes inside the traversed subgraph, and latest observed XRP balance in drops. Edges are directed and aggregate every XRP movement between the pair. Returns empty arrays when no token matches the supplied key.
| 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 |
|---|---|---|---|
tokenSlugrequired | string | Natural token identifier in `currency.issuer` form. Example: `USD.rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B`. |
| Name | Type | Default | Description |
|---|---|---|---|
maxDepth | integer | 3 |
| Field | Type | Description |
|---|---|---|
nodes | object[] | Accounts reached during the BFS, including the issuer at depth 0. Empty when the token isn't indexed. |
nodes[]. | string | XRPL classic address of the node. The issuer itself appears at depth 0. |
nodes[]. | integer | Shortest-path distance from the issuer in the traversed subgraph (0 = issuer). |
nodes[]. | string | Sum of incoming XRP drops from upstream nodes inside the traversed subgraph, as a decimal string of drops. |
nodes[]. | object | Latest observed XRP balance in drops, as a decimal string. `null` when the account has not been observed on-ledger yet. |
edges | object[] | Directed edges between accounts in `nodes`. Unique by `(from, to)` pair; aggregates every XRP movement between the pair. |
edges[]. | string | Source account (XRPL classic address). |
edges[]. | string | Destination account (XRPL classic address). |
edges[]. | string | Aggregate XRP drops moved from `from` → `to`, as a decimal string of drops. |
{
"nodes": [
{
"address": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"depth": 0,
"totalReceived": "0",
"currentBalance": "15000000000"
},
{
"address": "rExampleEarly1234567890",
"depth": 1,
"totalReceived": "5000000000",
"currentBalance": "4900000000"
}
],
"edges": [
{
"from": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"to": "rExampleEarly1234567890",
"amount": "5000000000"
}
]
}| 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": []
}