---
title: "List a wallet's shielded notes"
method: GET
path: "/api/v2/{coin}/wallet/{walletId}/shieldedunspents"
tags: ["Wallet"]
---

# List a wallet's shielded notes

`GET /api/v2/{coin}/wallet/{walletId}/shieldedunspents`

## Request

- Base URL: `https://developers.bitgo.com`
- URL: `https://developers.bitgo.com/api/v2/{coin}/wallet/{walletId}/shieldedunspents`
- Auth: none declared
- TypeScript: <https://skmtc.dev/bitgo/apis/bitgo-api/docs/api/v2/:coin/wallet/:walletId/shieldedunspents/get.ts> (a function with typed inputs; its response is checked against the schema)

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 parameters

- `coin` string, required: A cryptocurrency symbol or token ticker symbol
- `walletId` string, required

## Query parameters

- `limit` string, number
- `prevId` string
- `spendState` 'UNSPENT' | 'PENDING_SPEND' | 'SPENT'
- `minValue` string

## Response `200`

OK

- WalletShieldedUnspentsResponse
  - `notes` object[], required
    - `id` string, required: The note commitment — the note's stable natural id.
    - `address` string, required: The shielded address that received the note.
    - `valueString` string, required: Note value in zatoshi as a decimal string (never a JSON number).
    - `blockHeight` number, required: Height of the block containing the note's action.
    - `date` string, required: ISO-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.
    - `spendState` 'UNSPENT' | 'PENDING_SPEND' | 'SPENT', required: Spend state of a shielded note, as tracked by the indexer's shielded_notes model set. Mirrors the indexer's `POST /v2/:coin/shielded-unspents` vocabulary one-for-one. This is the indexer's persisted on-chain spend state, not wallet-platform's in-flight transaction state: notes locked by pending wallet transactions keep appearing UNSPENT until their spend is indexed, and spend selection applies its own reservation on top. The listing default is UNSPENT.
    - `hasLeafPosition` boolean, required: True 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).
    - `txid` string, required: The transaction that created the note.
    - `direction` 'incoming' | 'outgoing', required: Whether a shielded note was received by the wallet (incoming) or created as a spend output of one of the wallet's own transactions (outgoing). The indexer's decrypt resolves one viewing key per transaction and direction is relative to that key, so an outgoing note's value belongs to its recipient, not to the wallet the note is listed under.
  - `nextBatchPrevId` string: The ID from where the results can continue; absent means end of results.

## Other responses

- `400`: Bad Request

## Changes

> 72 revisions in range; 1 not diffed.

- **2026-11-06** `06a1d8c097eb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bitgo/apis/bitgo-api/changes/api/v2/:coin/wallet/:walletId/shieldedunspents/get.md)

---

[API](https://skmtc.dev/bitgo/apis/bitgo-api.md) - [All operations](https://skmtc.dev/bitgo/apis/bitgo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bitgo/apis/bitgo-api/revisions/34e865e76dfe?raw)
