Skip to main content
Paginated global UTXO query
Use this endpoint when you need to scan notes globally without knowing which tree they belong to. For tree-specific queries, prefer Tree Notes.
The path retains the legacy /v1/utxos segment. The records it serves are V18 Stealth Pool Notes.

Pagination

Use the next_cursor from each response as the start parameter for the next request. Repeat until the response contains fewer records than limit.

Response Layouts

Set X-Response-Layout: columnar for columnar layout (UtxoColumnarResponse). Omit for row-oriented layout (UtxoResponse).

Headers

X-Response-Layout
enum<string>

Set to "columnar" for UtxoColumnarResponse (parallel arrays). Omit for the default row-oriented UtxoResponse.

Available options:
columnar

Query Parameters

start
integer<int64>
default:0

Inclusive lower bound of the absolute index range to fetch. Defaults to 0.

Required range: x >= 0
end
integer<int64>

Inclusive upper bound of the absolute index range. When omitted, scans from start to end of dataset, bounded by limit.

limit
integer<int64>
default:1000

Maximum records per page. Default: 1000. Maximum: 5000. Passing 0 uses the default.

Required range: 0 <= x <= 5000

Response

UTXO records for the requested absolute index range.

Protobuf UtxoResponse message -- row-oriented paginated UTXO response.

Returned by GET /v1/utxos and GET /v1/trees/{tree_index}/utxos when X-Response-Layout is absent or set to any value other than "columnar".

Each UTXO is encoded as a self-contained UtxoDataItem sub-message. Use next_cursor as the start (or cursor) parameter of the next request to retrieve the following page.

items
object[]
required

Up to limit UTXO records in ascending absolute_index order.

has_more
boolean
required

true if additional records exist beyond this page.

Example:

true

total_count
integer<int64>
required

Total number of matching records in the requested range across all pages.

Example:

5000

start_index
integer<int64>
required

Inclusive lower bound of the absolute index range that was queried.

Example:

0

next_cursor
integer<int64> | null

Absolute index to pass as start (or cursor) for the next page. Absent when has_more is false.

Example:

1001

end_index
integer<int64> | null

Inclusive upper bound of the absolute index range that was queried. Absent when no explicit end (or tree boundary) was provided.

Example:

4999