List a wallet's shielded notes
Serves the ZEC/TZEC Ironwood pool — the ZIP-229 successor to Orchard; the
indexer extracts Ironwood actions only, so notes received via legacy
Orchard are not listed. By default only UNSPENT notes are returned; request
PENDING_SPEND or SPENT explicitly to observe the indexer's recorded
pending or spent notes. The page reflects the indexer's persisted on-chain
state only: a note locked by one of the wallet's in-flight transactions
(pending transaction requests, signed or unconfirmed transfers) still
appears UNSPENT here until its spend is indexed — spend selection applies
its own in-flight reservation, so treat the listing as observed value, not
a spendability guarantee. The response proxies one page of the indexer's
shielded-unspents listing — nextBatchPrevId is present only when the
page came back full; feed it back as prevId for the next page.
Coin-generic: any coin without shielded capability answers 400.
the shielded unspents listing; the request/response codecs here are the OpenAPI source of truth
Path Params
-
coinstring requiredCoin or token identifier (e.g. zec, tzec) -
walletIdstring requiredWallet ID to list shielded unspents for
Query Params
-
limitstring numberLimit the number of results. Values above 2000 are clamped at the wallet-platform boundary (mirroring the transparent unspents endpoint), not rejected; values below 1 or non-integers are rejected with a 400. -
prevIdstringContinuation cursor: the nextBatchPrevId value from a previous response — the note commitment (cmx) of the last note on that page. Values that are not hex-shaped are rejected with a 400 at the wallet-platform boundary before the indexer is called. -
spendStatestring enumSpend state of the notes to list, as persisted by the indexer. This is the indexer's on-chain state only: unlike the transparent unspents endpoint, which excludes outputs locked in the send queue, this listing cannot exclude notes already selected by the wallet's in-flight transactions — such a note still appears UNSPENT until its spend is indexed (spend selection applies its own reservation). A PENDING_SPEND note is excluded from the default listing even if its spending transaction later fails; request that state explicitly to see it.UNSPENTPENDING_SPENDSPENT -
minValuestringThe minimum value of notes to return (in zatoshi). Must be a non-negative integer string (/^\d+$/); anything else is rejected with a 400 at the wallet-platform boundary before the indexer is called.
Responses
200
OK
Response Body
object
-
notesarray of objects requirednotes object
-
idstring requiredThe note commitment — the note's stable natural id. -
addressstring requiredThe shielded address that received the note. -
valueStringstring requiredNote value in zatoshi as a decimal string (never a JSON number). -
blockHeightnumber requiredHeight of the block containing the note's action. -
datestring requiredISO-8601 UTC timestamp. Always present, including for unconfirmed notes (hasLeafPosition=false): the indexer derives it from createdAt, which its ZECShieldedNote schema marks required (indexerdb-microservice-utxo#405) — so t.string (not nullable) matches the wire contract. -
spendStatestring enum requiredThe note's spend state — the indexer's persisted on-chain state, not wallet-platform's in-flight transaction state (see ShieldedSpendState).UNSPENTPENDING_SPENDSPENT -
hasLeafPositionboolean requiredTrue once the indexer has assigned the note a note-commitment-tree position — a position indicator, not a standalone spendability signal: actual spendability also depends on the note's anchor height and on in-flight spends (pending nullifiers). -
txidstring requiredThe transaction that created the note. -
directionstring enum requiredWhether the note was received by the wallet (incoming) or created by a wallet spend (outgoing) — an outgoing note's value belongs to its recipient, not to the wallet the note is listed under.incomingoutgoing
-
-
nextBatchPrevIdstringThe ID from where the results can continue; absent means end of results.
400
Bad Request
Response Body
object
-
namestringError code -
contextmap of objects requiredProperties that apply to a specific error namecontext object
-
<key>object
-
-
errorstring requiredHuman-readable error message -
requestIdstring requiredClient request id