Skip to main content
Enhanced Transactions API — устаревший продукт в режиме технического обслуживания. Он по-прежнему работает, и эти страницы остаются доступными, но новые типы парсеров и функции больше не добавляются. Его преемник — Parsed Events, который декодирует инструкции с помощью каталога IDL и доступен на всех тарифах по цене 10 кредитов за запрос. В руководстве по миграции переход описан пошагово. Для истории транзакций и восстановления пропущенных данных также можно использовать getTransactionsForAddress, а для удобочитаемых данных кошелька — Wallet API.

Обзор

Эндпоинт Transaction History возвращает удобочитаемую историю транзакций для любого адреса Solana. Вместо необработанных данных инструкций и списков учетных записей вы получаете структурированную информацию о следующем:
  • Что произошло в транзакции: переводы, свопы, операции с NFT.
  • Какие учетные записи участвовали.
  • Сколько SOL или токенов было переведено.
  • Связанные метаданные: адреса выпуска токенов, названия и символы токенов и многое другое.
Отправьте запрос GET на /v0/addresses/{address}/transactions. Этот эндпоинт использует метод RPC getTransactionsForAddress.

Когда это использовать

  • Вы показываете пользователям историю транзакций адреса в кошельках, трекерах портфелей или обозревателях.
  • Вам нужна заранее разобранная и удобочитаемая история без написания собственного декодера.
  • Вам нужно фильтровать историю по типу транзакции, диапазону времени или диапазону слотов.
  • Вам нужна полная история токенов кошелька, включая связанные учетные записи токенов (ATA), — см. ниже.
Для новых проектов getTransactionsForAddress — современный нативный для Helius способ с серверной фильтрацией и поиском учетных записей токенов.

Быстрый старт

1

Get your API key

Зарегистрируйтесь на dashboard.helius.dev и скопируйте свой ключ API.
2

GET the address transactions endpoint

Получите историю транзакций для любого адреса Solana.
3

Filter and paginate

Сузьте результаты с помощью фильтра type, фильтров времени и слотов, описанных ниже, а затем постранично обработайте адреса с большим объемом данных с помощью курсоров подписей.

Поддержка сетей

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

Фильтрация по времени

Фильтрация по слотам

Примечания по фильтрации:
  • Параметры времени используют временные метки Unix (количество секунд с начала эпохи), а параметры слотов — номера слотов Solana.
  • Нельзя сочетать фильтры по времени и слотам в одном запросе.
  • Используйте sort-order=asc для сортировки по возрастанию (сначала самые старые) или sort-order=desc для сортировки по убыванию (сначала самые новые).
  • Если вы знаете приблизительный период, используйте фильтры времени или слотов, чтобы сократить область поиска, и сочетайте их с limit для управления размером страницы.

Связанные учетные записи токенов

В Solana кошелек не хранит токены напрямую. Вместо этого кошельку принадлежат учетные записи токенов, в которых хранятся токены. Когда кто-либо отправляет вам USDC, они поступают в вашу учетную запись токена USDC, а не на основной адрес кошелька. Уникальная особенность этого эндпоинта — возможность запрашивать полную историю токенов кошелька, включая связанные учетные записи токенов (ATA). Нативные методы RPC, такие как getSignaturesForAddress, не включают ATA. Фильтр token-accounts управляет этим поведением:
  • none (по умолчанию) — возвращает только транзакции, которые напрямую ссылаются на адрес кошелька. Используйте этот вариант, если вас интересуют только прямые взаимодействия с кошельком.
  • balanceChanged (рекомендуется) — возвращает транзакции, которые ссылаются на адрес кошелька или изменяют баланс принадлежащей кошельку учетной записи токена. Это исключает спам и несвязанные операции, например сбор комиссий или делегирование, и дает четкое представление о значимой активности кошелька.
  • all — возвращает все транзакции, которые ссылаются на адрес кошелька или любую принадлежащую ему учетную запись токена.
Фильтр token-accounts зависит от поля owner в метаданных баланса токенов, которое отсутствовало до слота 111 491 819 (примерно до декабря 2022 года). Транзакции с учетными записями токенов, активными до этого слота, могут отсутствовать в результатах balanceChanged и all. Обходное решение с полным примером кода приведено в руководстве по getTransactionsForAddress.

Фильтры

Фильтрация по типу транзакции

Получайте только транзакции определенных типов, например продажи NFT, переводы токенов или свопы:
Полный список поддерживаемых типов транзакций приведен в справочнике Transaction History API.

Фильтрация по типу во время выполнения

Фильтрация по типу выполняется во время обработки: API последовательно ищет транзакции, пока не найдет не менее 50 совпадающих элементов. Если в пределах окна поиска совпадения не найдены, API возвращает ошибку с подписью, начиная с которой можно продолжить поиск. Это ожидаемое поведение, а не сбой.
Если в текущем окне поиска не найдено совпадающих транзакций, API возвращает примерно такой ответ с ошибкой:
Чтобы продолжить, в следующем запросе передайте подпись из сообщения об ошибке в соответствующем параметре: before-signature для сортировки по убыванию или after-signature для сортировки по возрастанию.
Основные моменты:
  • При использовании фильтров по типу API проверяет до 50 транзакций за один раз.
  • Если совпадения не найдены, используйте подпись из сообщения об ошибке, чтобы продолжить поиск.
  • При поиске в порядке убывания используйте before-signature (по умолчанию сначала возвращаются самые новые транзакции).
  • При поиске в порядке возрастания используйте after-signature (сначала возвращаются самые старые транзакции). Это обязательно для хронологического поиска.
  • Установите максимальное количество повторных попыток, чтобы предотвратить бесконечные циклы.

Примеры

Следующие сценарии охватывают диапазоны времени и слотов, порядок сортировки, ATA и комбинированные фильтры.
Получите транзакции за определенный период времени:
Получите транзакции в определенном диапазоне слотов:
Получите транзакции в порядке возрастания, начиная с самых старых:
Сочетайте фильтрацию по типу с диапазоном времени и пользовательским порядком сортировки:

Пагинация

Для адресов с большим объемом данных постранично перебирайте результаты, используя последнюю подпись в каждом пакете как курсор:
Для пагинации в пределах диапазона времени сохраняйте фильтры времени в каждом запросе и в каждом цикле перемещайте курсор before-signature:

Следующие шаги

getTransactionsForAddress

Современная нативная для Helius замена для получения истории транзакций и восстановления пропущенных данных.

Wallet API

Эндпоинты REST для удобочитаемых данных кошелька: балансов, истории и переводов.

Parse Transactions

Преобразуйте одну или несколько подписей транзакций в удобочитаемые данные.

Getting Data overview

Сравните все варианты Helius для запросов данных Solana.