Skip to main content
POST
getEncryptedUtxosByTags

Encrypted Outputs

Use this method to get encrypted UTXOs for client-side decryption. Your wallet decrypts the outputs and sums the unspent amounts for each asset to determine its private balance. This compares to Solana’s getTokenAccountsByOwner, which returns SPL Token accounts owned by an address. A private balance is stored in UTXOs, not Solana accounts, wherefore it requires a dedicated RPC method. Learn more about Private State and UTXOs. The method returns matching outputs in result.data, grouped by Solana transaction. Each entry includes the transaction’s slot and signature. An output includes its ciphertext, view tag, commitment, tree ID, and leaf index. The response includes historical outputs that may already have been spent. Your wallet must track nullifiers to determine its spendable balance. See the private balance guide. An empty tags array requires ringProgramId and selects outputs from that ring. When both are supplied, outputs must match the tags and the ring. See pagination and freshness for page limits, continuation tokens, and incremental reads.

Request Parameters

object
Slot bounds. Resume a caught-up, uncapped read with slot.gt set to the last page’s context.slot.
object
Slot bounds for the read. Supplied bounds combine with AND.
number
Only include transactions after this slot.
number
Only include transactions at or after this slot.
number
Only include transactions before this slot.
number
Only include transactions at or before this slot.
number
default:"1000"
Maximum number of Solana transactions per page, from 1 to 1,000.
number
Minimum persisted indexer slot required for this read. Returns JSON-RPC error -32016 if the indexer is behind.
string
Continuation token from the previous response. Pass it back unchanged with the same tags, ring, and slot filters.
string
Restrict results to the ring authorized by this program ID. Required when tags is empty.
array
required
Base58-encoded 32-byte view tags. At most 1,000. An empty array requires ringProgramId and selects that ring.

Authorizations

api-key
string
query
required

Your Helius API key.

Body

application/json
id
string
default:1
required

An ID to identify the request.

jsonrpc
enum<string>
default:2.0
required

The JSON-RPC protocol version.

Available options:
2.0
method
enum<string>
default:getEncryptedUtxosByTags
required

The method to invoke. Must match the final URL path segment.

Available options:
getEncryptedUtxosByTags
params
object
required
Example:

Response

JSON-RPC response. Inspect error before reading result.

id
string
required

The request ID.

jsonrpc
enum<string>
required

The version of the JSON-RPC protocol.

Available options:
2.0
error
object
result
object

One bounded page of a history read, in gTFA-style pagination.