> ## 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.

# getUserRecords

> Look up the public shielded address records registered by Solana wallet owners.

## Registry Records

Supply between 1 and 100 Solana owner public keys. The response contains one entry in `result.records` per owner, in request order. An entry is `null` when the owner has no registry record at the slot the records were read.

A record includes the owner's base58 nullifier public key and base64 viewing public key. The viewing public key is a 33-byte tagged X25519 key: `0x04` followed by a canonical 32-byte u-coordinate. `mergeEncryption` is `0` when merging is disabled and `1` for PoseidonCtrV1.

Records are fetched from Solana at a slot no earlier than `context.slot`. These are public registration keys; see [shielded keypairs and encryption](https://www.helius.dev/docs/privacy/concepts/encryption.md) for wallet key handling.

## Request Parameters

**owners** `array` *required*

Solana pubkeys to look up in the user registry. At most 100.


## OpenAPI

````yaml openapi/privacy/getUserRecords.yaml POST /v1/spr/getUserRecords
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/getUserRecords:
    post:
      summary: getUserRecords
      description: >-
        Look up the public shielded address records registered by Solana wallet
        owners.
      operationId: getUserRecords
      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:
                    - getUserRecords
                  default: getUserRecords
                params:
                  type: object
                  required:
                    - owners
                  properties:
                    owners:
                      type: array
                      items:
                        $ref: '#/components/schemas/SerializablePubkey'
                      description: >-
                        Solana pubkeys to look up in the user registry. At most
                        100.
                      maxItems: 100
                      minItems: 1
                  additionalProperties: false
                  example:
                    owners:
                      - '11111111111111111111111111111111'
            example:
              jsonrpc: '2.0'
              id: '1'
              method: getUserRecords
              params:
                owners:
                  - '11111111111111111111111111111111'
        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
                    required:
                      - context
                      - records
                    properties:
                      context:
                        $ref: '#/components/schemas/Context'
                      records:
                        type: array
                        items:
                          type: object
                          description: >-
                            A user registry record, the shielded address a
                            Solana pubkey publishes.
                          required:
                            - owner
                            - nullifierPubkey
                            - viewingPubkey
                            - mergeEncryption
                          properties:
                            mergeEncryption:
                              type: integer
                              format: uint8
                              description: >-
                                Merge output encryption scheme the owner accepts
                                for `merge_transact`. 0 disables merging and 1
                                selects PoseidonCtrV1. While a scheme is
                                selected, any caller may merge this owner's
                                UTXOs under that scheme.
                              minimum: 0
                            nullifierPubkey:
                              allOf:
                                - $ref: '#/components/schemas/Hash'
                              description: Wallet-wide nullifier pubkey. Never rotates.
                            owner:
                              $ref: '#/components/schemas/SerializablePubkey'
                            viewingPubkey:
                              allOf:
                                - $ref: '#/components/schemas/Base64String'
                              description: >-
                                Tagged X25519 viewing pubkey (0x04 followed by a
                                canonical 32-byte u-coordinate).
                          additionalProperties: false
                          nullable: true
                        description: >-
                          One entry per requested owner, in request order.
                          `null` when the owner

                          has no registry record at the slot the records were
                          read, which is no

                          earlier than `context.slot`.
                    additionalProperties: false
              example:
                jsonrpc: '2.0'
                id: '1'
                result:
                  context:
                    slot: 4242
                    blockTime: 1730000000
                  records:
                    - 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:
    SerializablePubkey:
      type: string
      description: A base58-encoded Solana public key.
    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
    Hash:
      type: string
      description: A base58-encoded 32-byte hash.
    Base64String:
      type: string
      description: A base64-encoded byte string.
  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.