Перейти к основному содержанию
API Solana Privacy Rings отправляет запросы к индексатору конфиденциальности. Он возвращает зашифрованное состояние и общедоступные метаданные транзакций. Ваш кошелёк расшифровывает полезную нагрузку, чтобы получить приватные балансы и историю. Основные понятия описаны в обзоре конфиденциальности, а процессы внесения, перевода и вывода средств — в SDK.

Публичные и приватные балансы

Приватный баланс хранится в UTXO (неизрасходованных выходах транзакций). UTXO не является аккаунтом Solana. Описание хранения и расходования приватных балансов см. в разделе Приватное состояние и UTXO.

Конечная точка и аутентификация

Отправьте запрос JSON-RPC 2.0 по пути метода, указав ключ API Helius:
Значение method должно соответствовать последнему сегменту пути URL. Пути методов принимают один запрос. Пакетные запросы, повторяющиеся поля method и несоответствия между путём и телом запроса приводят к возврату HTTP 400 до выполнения. Для локальной разработки используйте http://127.0.0.1:8784/{method} после запуска локального стека.

Методы

getEncryptedUtxosByTags

Находите зашифрованные выходы по тегам просмотра или кольцу.

getShieldedTransactionsByTags

Запрашивайте историю защищённых транзакций по тегам просмотра или кольцу.

getShieldedTransactionsBySignature

Получайте защищённые события для одной транзакции Solana.

getShieldedTransactionsByNullifiers

Находите транзакции, в которых были израсходованы указанные нуллификаторы.

getMerkleProofs

Получайте доказательства включения для обязательств дерева состояний.

getNonInclusionProofs

Получайте доказательства невключения для значений нуллификаторов.

getNullifierQueueElements

Читайте нуллификаторы из очереди в порядке последовательности.

getUserRecords

Находите общедоступные регистрации защищённых адресов.

Пагинация

getEncryptedUtxosByTags, getShieldedTransactionsByTags и getShieldedTransactionsByNullifiers возвращают страницу в result:
  • data группирует результаты по транзакциям Solana, упорядоченным по возрастанию слота и подписи. Метод зашифрованных UTXO использует массив outputs в каждой группе, а методы истории транзакций — массив events.
  • limit задаёт количество транзакций Solana от 1 до 1 000. Значение по умолчанию — 1 000. Соответствующие одной транзакции выходы или события остаются вместе на одной странице.
  • Передавайте ненулевое значение paginationToken обратно без изменений вместе с теми же тегами или нуллификаторами, кольцом и фильтрами слотов. Продолжайте, пока токен в ответе не станет равен null.
  • filters.slot принимает границы gt, gte, lt и lte. Указанные границы объединяются логическим оператором AND. Когда чтение без верхнего ограничения достигает нулевого токена, сохраните значение context.slot этой страницы и возобновите чтение позже, задав для filters.slot.gt это значение. Чтение, ограниченное lt или lte, охватывает только слоты до указанной границы. Возобновляйте его с этой границы, а не с context.slot.
  • Задайте minContextSlot, чтобы потребовать минимальный сохранённый слот индексатора. Индексатор также требует слот вашего paginationToken и любого фильтра gt или gte. Если индексатор отстаёт от любого из них, он возвращает ошибку -32016 с error.data.contextSlot. Повторите попытку, когда индексатор синхронизируется.
Ответы с историей также могут включать outputTreeId — идентификатор новейшего неприостановленного дерева состояний. Если он недоступен, поле отсутствует. Отдельные выходы указывают собственное дерево с помощью outputContext.treeId. getNullifierQueueElements использует пагинацию на основе последовательности. См. страницу метода.

Кодирование данных

Ошибки

Проверяйте поле error JSON-RPC перед чтением result, в том числе при статусе HTTP 200. HTTP 429 указывает на ограничение частоты запросов. См. ограничения частоты запросов. Настройка ключа API описана в разделе аутентификация.