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

# getEncryptedUtxosByTags

> Получение зашифрованных выходов UTXO, соответствующих тегам просмотра или определенному кольцу.

## Зашифрованные выходы

Используйте этот метод, чтобы получить зашифрованные UTXO для расшифровки на стороне клиента. Ваш кошелек расшифровывает выходы и суммирует неизрасходованные суммы каждого актива, чтобы определить его приватный баланс.

Этот метод аналогичен методу Solana [`getTokenAccountsByOwner`](https://solana.com/docs/rpc/http/gettokenaccountsbyowner), который возвращает аккаунты токенов SPL, принадлежащие определенному адресу. Приватный баланс хранится в UTXO, а не в аккаунтах Solana, поэтому для него требуется отдельный метод RPC. Подробнее см. в разделе [«Приватное состояние и UTXO»](https://www.helius.dev/docs/ru/privacy/concepts/utxo.md).

Метод возвращает соответствующие выходы в `result.data`, сгруппированные по транзакциям Solana. Каждая запись содержит `slot` и `signature` транзакции. Выход содержит шифротекст, тег просмотра, коммитмент, идентификатор дерева и индекс листа.

Ответ содержит исторические выходы, которые, возможно, уже были израсходованы. Ваш кошелек должен отслеживать нуллификаторы, чтобы определять доступный для расходования баланс. См. [руководство по приватному балансу](https://www.helius.dev/docs/ru/privacy/guides/read-balance.md).

Для пустого массива `tags` необходимо указать `ringProgramId`; в этом случае выбираются выходы из соответствующего кольца. Если указаны оба параметра, выходы должны соответствовать и тегам, и кольцу.

Сведения об ограничениях страниц, токенах продолжения и инкрементальном чтении см. в разделе [«Пагинация и актуальность»](https://www.helius.dev/docs/ru/api-reference/privacy.md#пагинация).

## Параметры запроса

**filters** `object`

Границы слотов. Чтобы возобновить синхронизированное чтение без верхнего ограничения, задайте для `slot.gt` значение `context.slot` с последней страницы.

**filters.slot** `object`

Границы слотов для чтения. Указанные границы объединяются оператором AND.

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

Включать только транзакции после этого слота.

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

Включать только транзакции в этом слоте или после него.

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

Включать только транзакции до этого слота.

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

Включать только транзакции в этом слоте или до него.

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

Максимальное количество транзакций Solana на странице: от 1 до 1000.

**minContextSlot** `number`

Минимальный сохраненный слот индексатора, необходимый для этого чтения. Если индексатор отстает, возвращается ошибка JSON-RPC -32016.

**paginationToken** `string`

Токен продолжения из предыдущего ответа. Передайте его без изменений с теми же тегами, кольцом и фильтрами слотов.

**ringProgramId** `string`

Ограничивает результаты кольцом, авторизованным этим идентификатором программы. Обязателен, если массив тегов пуст.

**tags** `array` *required*

32-байтовые теги просмотра в кодировке Base58. Не более 1000. Для пустого массива необходимо указать ringProgramId; в этом случае выбирается соответствующее кольцо.


## OpenAPI

````yaml ru/openapi/privacy/getEncryptedUtxosByTags.yaml POST /v1/spr/getEncryptedUtxosByTags
openapi: 3.0.3
info:
  title: API колец конфиденциальности Solana
  version: 0.51.2
  description: >-
    JSON-RPC API индексатора конфиденциальности для зашифрованного состояния,
    истории, доказательств и общедоступных записей реестра.
servers:
  - url: https://devnet.helius-rpc.com
    description: API колец конфиденциальности Solana в Devnet
security: []
paths:
  /v1/spr/getEncryptedUtxosByTags:
    post:
      summary: getEncryptedUtxosByTags
      description: >-
        Получает зашифрованные выходы UTXO, соответствующие тегам просмотра или
        определенному кольцу.
      operationId: getEncryptedUtxosByTags
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - jsonrpc
                - id
                - method
                - params
              properties:
                id:
                  type: string
                  description: Идентификатор запроса.
                  default: '1'
                jsonrpc:
                  type: string
                  description: Версия протокола JSON-RPC.
                  enum:
                    - '2.0'
                  default: '2.0'
                method:
                  type: string
                  description: >-
                    Вызываемый метод. Должен совпадать с последним сегментом
                    пути URL.
                  enum:
                    - getEncryptedUtxosByTags
                  default: getEncryptedUtxosByTags
                params:
                  type: object
                  required:
                    - tags
                  properties:
                    filters:
                      allOf:
                        - $ref: '#/components/schemas/HistoryFilters'
                      description: >-
                        Границы слотов. Чтобы возобновить чтение без верхней
                        границы после достижения актуального состояния, задайте
                        в `slot.gt` значение `context.slot` с последней
                        страницы.
                    limit:
                      type: integer
                      format: uint64
                      maximum: 1000
                      minimum: 1
                      nullable: true
                      default: 1000
                      description: >-
                        Максимальное количество транзакций Solana на странице:
                        от 1 до 1 000.
                    minContextSlot:
                      type: integer
                      format: uint64
                      minimum: 0
                      nullable: true
                      description: >-
                        Минимальный сохраненный индексатором слот, необходимый
                        для этого чтения. Если индексатор отстает, возвращается
                        ошибка JSON-RPC -32016.
                    paginationToken:
                      type: string
                      description: >-
                        Токен продолжения из предыдущего ответа. Передайте его
                        без изменений с теми же тегами, кольцом и фильтрами
                        слотов.
                      nullable: true
                    ringProgramId:
                      type: string
                      description: >-
                        Ограничивает результаты кольцом, авторизованным этим
                        идентификатором программы. Обязательно, если tags пуст.
                      nullable: true
                    tags:
                      type: array
                      items:
                        $ref: '#/components/schemas/Hash'
                      description: >-
                        32-байтовые теги просмотра в кодировке base58. Не более
                        1 000. Для пустого массива требуется ringProgramId; в
                        этом случае выбирается указанное кольцо.
                      maxItems: 1000
                  additionalProperties: false
                  example:
                    tags:
                      - '11111111111111111111111111111112'
                    limit: 100
            example:
              jsonrpc: '2.0'
              id: '1'
              method: getEncryptedUtxosByTags
              params:
                tags:
                  - '11111111111111111111111111111112'
                limit: 100
        required: true
      responses:
        '200':
          description: Ответ JSON-RPC. Проверьте error перед чтением 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: Идентификатор запроса.
                  jsonrpc:
                    type: string
                    description: Версия протокола JSON-RPC.
                    enum:
                      - '2.0'
                  result:
                    type: object
                    description: >-
                      Одна ограниченная страница чтения истории с пагинацией в
                      стиле gTFA.
                    required:
                      - context
                      - data
                      - paginationToken
                    properties:
                      context:
                        $ref: '#/components/schemas/Context'
                      data:
                        type: array
                        items:
                          type: object
                          description: Все совпадающие выходы одной транзакции Solana.
                          required:
                            - slot
                            - signature
                            - outputs
                          properties:
                            outputs:
                              type: array
                              items:
                                $ref: '#/components/schemas/EncryptedUtxoMatch'
                            signature:
                              $ref: '#/components/schemas/SerializableSignature'
                            slot:
                              type: integer
                              format: uint64
                              minimum: 0
                          additionalProperties: false
                      outputTreeId:
                        type: integer
                        format: uint16
                        description: >-
                          Идентификатор новейшего неприостановленного дерева
                          состояний. Не включается, если недоступен.
                        minimum: 0
                      paginationToken:
                        type: string
                        description: >-
                          Токен следующей страницы; null, если совпадающих
                          результатов больше нет. Чтение без границы `lt` или
                          `lte`, достигшее актуального состояния, позднее
                          возобновляется со значением `filters.slot.gt`, равным
                          `context.slot` этой страницы; чтение с верхней
                          границей охватывает только слоты до этой границы.
                        nullable: true
              example:
                jsonrpc: '2.0'
                id: '1'
                result:
                  context:
                    slot: 4242
                    blockTime: 1730000000
                  data: []
                  paginationToken: null
        '400':
          description: >-
            Запрос отклонен до выполнения. Несоответствие метода и пути,
            дублирующиеся поля метода или пакетный запрос возвращают -32601.
            Нечитаемое или слишком большое тело возвращает -32600.
          content:
            application/json:
              schema:
                type: object
                required:
                  - jsonrpc
                  - id
                  - error
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id:
                    type: string
                    nullable: true
                    description: >-
                      Идентификатор запроса или null, если тело не является
                      одиночным вызовом JSON-RPC.
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
        '429':
          description: Превышено ограничение частоты запросов.
          content:
            application/json:
              schema:
                type: object
                required:
                  - jsonrpc
                  - id
                  - error
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id:
                    type: string
                    nullable: true
                    description: >-
                      Идентификатор запроса или null, если тело не является
                      одиночным вызовом JSON-RPC.
                  error:
                    type: object
                    required:
                      - code
                      - message
                    properties:
                      code:
                        type: integer
                      message:
                        type: string
                      data:
                        type: object
                        additionalProperties: true
        '500':
          description: Внутренняя ошибка сервера.
          content:
            application/json:
              schema:
                type: object
                required:
                  - jsonrpc
                  - id
                  - error
                properties:
                  jsonrpc:
                    type: string
                    enum:
                      - '2.0'
                  id:
                    type: string
                    nullable: true
                    description: >-
                      Идентификатор запроса или null, если тело не является
                      одиночным вызовом JSON-RPC.
                  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: Необязательные границы слотов для запроса истории.
      properties:
        slot:
          $ref: '#/components/schemas/SlotFilter'
      additionalProperties: false
    Hash:
      type: string
      description: 32-байтовый хеш в кодировке base58.
    Context:
      type: object
      required:
        - blockTime
        - slot
      properties:
        blockTime:
          type: integer
          format: int64
        slot:
          type: integer
          format: uint64
          description: >-
            Самый высокий слот, сохраненный индексатором, для проверки
            актуальности по слотам.
          minimum: 0
    EncryptedUtxoMatch:
      type: object
      required:
        - slot
        - txSignature
        - txViewingPk
        - salt
        - outputSlot
      properties:
        outputSlot:
          $ref: '#/components/schemas/RingsOutputSlot'
        salt:
          type: string
          description: >-
            Соль AES уровня транзакции, общая для зашифрованного текста каждого
            выхода.
          nullable: true
        slot:
          type: integer
          format: uint64
          minimum: 0
        txSignature:
          $ref: '#/components/schemas/SerializableSignature'
        txViewingPk:
          type: string
          description: Строка байтов в кодировке base64.
          nullable: true
    SerializableSignature:
      type: string
      description: 64-байтовая подпись транзакции Solana в кодировке base58.
    SlotFilter:
      type: object
      description: >-
        Границы слотов для чтения. Указанные границы объединяются оператором
        AND.
      properties:
        gt:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Включать только транзакции после этого слота.
        gte:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Включать только транзакции в этом слоте или после него.
        lt:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Включать только транзакции до этого слота.
        lte:
          type: integer
          format: uint64
          minimum: 0
          nullable: true
          description: Включать только транзакции в этом слоте или до него.
      additionalProperties: false
    RingsOutputSlot:
      type: object
      required:
        - viewTag
        - outputContext
        - payload
      properties:
        outputContext:
          $ref: '#/components/schemas/RingsOutputContext'
        payload:
          $ref: '#/components/schemas/Base64String'
        viewTag:
          $ref: '#/components/schemas/Hash'
    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: >-
            Аккаунт дерева состояний. Предпочтительно использовать treeId;
            аккаунт дерева определяется на его основе.
          deprecated: true
        treeId:
          type: integer
          format: uint16
          description: >-
            Исходный идентификатор дерева, в котором хешируется обязательство
            выхода.
          minimum: 0
    Base64String:
      type: string
      description: Строка байтов в кодировке base64.
    SerializablePubkey:
      type: string
      description: Публичный ключ Solana в кодировке base58.
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: Ваш ключ API Helius.

````

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