> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# getShieldedTransactionsByNullifiers

> Retrieve shielded transaction events that spend the supplied nullifiers.

## Find Spending Transactions

Use nullifiers derived by your wallet to find the transactions that spent its inputs. Nullifiers select transactions. Each entry in `result.data` holds every event of one selected Solana transaction, with its `slot` and `signature`.

Supply between 1 and 1,000 nullifiers. See [pagination and freshness](https://www.helius.dev/docs/api-reference/privacy.md#pagination) for page limits, continuation tokens, and incremental reads.

## Request Parameters

**filters** `object`

Slot bounds. Resume a caught-up, uncapped read with `slot.gt` set to the last page's `context.slot`.

**filters.slot** `object`

Slot bounds for the read. Supplied bounds combine with AND.

**filters.slot.gt** `number`

Only include transactions after this slot.

**filters.slot.gte** `number`

Only include transactions at or after this slot.

**filters.slot.lt** `number`

Only include transactions before this slot.

**filters.slot.lte** `number`

Only include transactions at or before this slot.

**limit** `number` (default: 1000)

Maximum number of Solana transactions per page, from 1 to 1,000.

**minContextSlot** `number`

Minimum persisted indexer slot required for this read. Returns JSON-RPC error -32016 if the indexer is behind.

**nullifiers** `array` *required*

Base58-encoded 32-byte nullifiers to match against spent inputs.

**paginationToken** `string`

Continuation token from the previous response. Pass it back unchanged with the same nullifiers and slot filters.


## OpenAPI

````yaml openapi/privacy/getShieldedTransactionsByNullifiers.yaml POST /v1/spr/getShieldedTransactionsByNullifiers
openapi: 3.0.3
info:
  title: Solana Privacy Rings API
  version: 0.51.2
  description: >-
    Privacy indexer JSON-RPC API for encrypted state, history, proofs, and
    public registry records.
servers:
  - url: https://devnet.helius-rpc.com
    description: Devnet Solana Privacy Rings API
security: []
paths:
  /v1/spr/getShieldedTransactionsByNullifiers:
    post:
      summary: getShieldedTransactionsByNullifiers
      description: Retrieve shielded transaction events that spend the supplied nullifiers.
      operationId: getShieldedTransactionsByNullifiers
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - jsonrpc
                - id
                - method
                - params
              properties:
                id:
                  type: string
                  description: An ID to identify the request.
                  default: '1'
                jsonrpc:
                  type: string
                  description: The JSON-RPC protocol version.
                  enum:
                    - '2.0'
                  default: '2.0'
                method:
                  type: string
                  description: The method to invoke. Must match the final URL path segment.
                  enum:
                    - getShieldedTransactionsByNullifiers
                  default: getShieldedTransactionsByNullifiers
                params:
                  type: object
                  required:
                    - nullifiers
                  properties:
                    filters:
                      allOf:
                        - $ref: '#/components/schemas/HistoryFilters'
                      description: >-
                        Slot bounds. Resume a caught-up, uncapped read with
                        `slot.gt` set to the last page's `context.slot`.
                    limit:
                      type: integer
                      format: uint64
                      maximum: 1000
                      minimum: 1
                      nullable: true
                      default: 1000
                      description: >-
                        Maximum number of Solana transactions per page, from 1
                        to 1,000.
                    minContextSlot:
                      type: integer
                      format: uint64
                      minimum: 0
                      nullable: true
                      description: >-
                        Minimum persisted indexer slot required for this read.
                        Returns JSON-RPC error -32016 if the indexer is behind.
                    nullifiers:
                      type: array
                      items:
                        $ref: '#/components/schemas/Hash'
                      minItems: 1
                      maxItems: 1000
                      description: >-
                        Base58-encoded 32-byte nullifiers to match against spent
                        inputs.
                    paginationToken:
                      type: string
                      description: >-
                        Continuation token from the previous response. Pass it
                        back unchanged with the same nullifiers and slot
                        filters.
                      nullable: true
                  additionalProperties: false
                  example:
                    nullifiers:
                      - '11111111111111111111111111111112'
                    limit: 100
            example:
              jsonrpc: '2.0'
              id: '1'
              method: getShieldedTransactionsByNullifiers
              params:
                nullifiers:
                  - '11111111111111111111111111111112'
                limit: 100
        required: true
      responses:
        '200':
          description: JSON-RPC response. Inspect error before reading result.
          content:
            application/json:
              schema:
                type: object
                required:
                  - jsonrpc
                  - id
                properties:
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
                  id:
                    type: string
                    description: The request ID.
                  jsonrpc:
                    type: string
                    description: The version of the JSON-RPC protocol.
                    enum:
                      - '2.0'
                  result:
                    type: object
                    description: >-
                      One bounded page of a history read, in gTFA-style
                      pagination.
                    required:
                      - context
                      - data
                      - paginationToken
                    properties:
                      context:
                        $ref: '#/components/schemas/Context'
                      data:
                        type: array
                        items:
                          type: object
                          description: >-
                            The returned events of one Solana transaction, in
                            event order.
                          required:
                            - slot
                            - signature
                            - events
                          properties:
                            events:
                              type: array
                              items:
                                $ref: '#/components/schemas/ShieldedTransaction'
                            signature:
                              $ref: '#/components/schemas/SerializableSignature'
                            slot:
                              type: integer
                              format: uint64
                              minimum: 0
                          additionalProperties: false
                      outputTreeId:
                        type: integer
                        format: uint16
                        description: >-
                          The newest unpaused state tree ID. Omitted when
                          unavailable.
                        minimum: 0
                      paginationToken:
                        type: string
                        description: >-
                          Token for the next page, null when no more results
                          match. A caught-up

                          read without an `lt` or `lte` bound resumes later with
                          `filters.slot.gt`

                          set to this page's `context.slot`; a capped read
                          covers only slots up to

                          its cap.
                        nullable: true
              example:
                jsonrpc: '2.0'
                id: '1'
                result:
                  context:
                    slot: 4242
                    blockTime: 1730000000
                  data: []
                  paginationToken: null
        '400':
          description: >-
            Rejected before execution. A method/path mismatch, duplicate method
            fields, or a batch request returns -32601. An unreadable or
            oversized body returns -32600.
          content:
            application/json:
              schema:
                type: object
                required:
                  - jsonrpc
                  - id
                  - error
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id:
                    type: string
                    nullable: true
                    description: >-
                      The request id, or null when the body is not a single
                      JSON-RPC call.
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
        '429':
          description: Rate limit exceeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - jsonrpc
                  - id
                  - error
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id:
                    type: string
                    nullable: true
                    description: >-
                      The request id, or null when the body is not a single
                      JSON-RPC call.
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                required:
                  - jsonrpc
                  - id
                  - error
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id:
                    type: string
                    nullable: true
                    description: >-
                      The request id, or null when the body is not a single
                      JSON-RPC call.
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
      security:
        - ApiKeyQuery: []
components:
  schemas:
    HistoryFilters:
      type: object
      description: Optional slot bounds for the history query.
      properties:
        slot:
          $ref: '#/components/schemas/SlotFilter'
      additionalProperties: false
    Hash:
      type: string
      description: A base58-encoded 32-byte hash.
    Context:
      type: object
      required:
        - blockTime
        - slot
      properties:
        blockTime:
          type: integer
          format: int64
        slot:
          type: integer
          format: uint64
          description: >-
            Highest slot the indexer has persisted, for slot-based freshness
            checks.
          minimum: 0
    ShieldedTransaction:
      type: object
      required:
        - slot
        - txSignature
        - txViewingPk
        - salt
        - outputSlots
        - messages
        - nullifiers
        - proofless
      properties:
        eventIndex:
          type: integer
          format: uint16
          minimum: 0
        messages:
          type: array
          items:
            $ref: '#/components/schemas/RingsMessage'
          description: >-
            Published data slots bound to no output commitment, republished
            verbatim.
        nullifiers:
          type: array
          items:
            $ref: '#/components/schemas/Hash'
        outputSlots:
          type: array
          items:
            $ref: '#/components/schemas/RingsOutputSlot'
        proofless:
          type: boolean
          description: True when at least one output in this transaction is proofless.
        ringConfig:
          type: string
          description: >-
            The ring's config account (its `ring_auth` PDA). Omitted when no
            ring authorized this transaction.
        ringProgramId:
          type: string
          description: >-
            The ring's program, resolved through the indexed registrations.
            Omitted when `ringConfig` is omitted or the ring's registration has
            not been indexed. Use `ringConfig` to tell "no ring" apart from
            "ring with an unindexed program".
        salt:
          type: string
          description: Transaction-level AES salt shared by every output ciphertext.
          nullable: true
        slot:
          type: integer
          format: uint64
          minimum: 0
        txSignature:
          $ref: '#/components/schemas/SerializableSignature'
        txViewingPk:
          type: string
          description: A base64-encoded byte string.
          nullable: true
    SerializableSignature:
      type: string
      description: A base58-encoded 64-byte Solana transaction signature.
    SlotFilter:
      type: object
      description: Slot bounds for the read. Supplied bounds combine with AND.
      properties:
        gt:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Only include transactions after this slot.
        gte:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Only include transactions at or after this slot.
        lt:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Only include transactions before this slot.
        lte:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Only include transactions at or before this slot.
      additionalProperties: false
    RingsMessage:
      type: object
      required:
        - viewTag
        - payload
      properties:
        payload:
          $ref: '#/components/schemas/Base64String'
        viewTag:
          $ref: '#/components/schemas/Hash'
    RingsOutputSlot:
      type: object
      required:
        - viewTag
        - outputContext
        - payload
      properties:
        outputContext:
          $ref: '#/components/schemas/RingsOutputContext'
        payload:
          $ref: '#/components/schemas/Base64String'
        viewTag:
          $ref: '#/components/schemas/Hash'
    Base64String:
      type: string
      description: A base64-encoded byte string.
    RingsOutputContext:
      type: object
      required:
        - hash
        - tree
        - treeId
        - leafIndex
      properties:
        hash:
          $ref: '#/components/schemas/Hash'
        leafIndex:
          type: integer
          format: uint64
          minimum: 0
        tree:
          allOf:
            - $ref: '#/components/schemas/SerializablePubkey'
          description: >-
            State tree account. Prefer treeId; the tree account is derived from
            it.
          deprecated: true
        treeId:
          type: integer
          format: uint16
          description: The raw tree id the output's commitment is hashed under.
          minimum: 0
    SerializablePubkey:
      type: string
      description: A base58-encoded Solana public key.
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: Your Helius API key.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.