Обзор
Эндпоинт 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.
- JavaScript
- Python
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— возвращает все транзакции, которые ссылаются на адрес кошелька или любую принадлежащую ему учетную запись токена.
Фильтры
Фильтрация по типу транзакции
Получайте только транзакции определенных типов, например продажи NFT, переводы токенов или свопы:- NFT Sales
- Token Transfers
- Swaps
Фильтрация по типу во время выполнения
Фильтрация по типу выполняется во время обработки: API последовательно ищет транзакции, пока не найдет не менее 50 совпадающих элементов. Если в пределах окна поиска совпадения не найдены, API возвращает ошибку с подписью, начиная с которой можно продолжить поиск. Это ожидаемое поведение, а не сбой.
before-signature для сортировки по убыванию или after-signature для сортировки по возрастанию.
Continuation loop for type filters (full example)
Continuation loop for type filters (full example)
- При использовании фильтров по типу API проверяет до 50 транзакций за один раз.
- Если совпадения не найдены, используйте подпись из сообщения об ошибке, чтобы продолжить поиск.
- При поиске в порядке убывания используйте
before-signature(по умолчанию сначала возвращаются самые новые транзакции). - При поиске в порядке возрастания используйте
after-signature(сначала возвращаются самые старые транзакции). Это обязательно для хронологического поиска. - Установите максимальное количество повторных попыток, чтобы предотвратить бесконечные циклы.
Примеры
Следующие сценарии охватывают диапазоны времени и слотов, порядок сортировки, ATA и комбинированные фильтры.Filter by time range
Filter by time range
Получите транзакции за определенный период времени:
- Last 24 Hours
- Specific Date Range
Filter by slot range
Filter by slot range
Получите транзакции в определенном диапазоне слотов:
Change sort order
Change sort order
Получите транзакции в порядке возрастания, начиная с самых старых:
Combine multiple filters
Combine multiple filters
Сочетайте фильтрацию по типу с диапазоном времени и пользовательским порядком сортировки:
Пагинация
Для адресов с большим объемом данных постранично перебирайте результаты, используя последнюю подпись в каждом пакете как курсор:before-signature:
Следующие шаги
getTransactionsForAddress
Современная нативная для Helius замена для получения истории транзакций и восстановления пропущенных данных.
Wallet API
Эндпоинты REST для удобочитаемых данных кошелька: балансов, истории и переводов.
Parse Transactions
Преобразуйте одну или несколько подписей транзакций в удобочитаемые данные.
Getting Data overview
Сравните все варианты Helius для запросов данных Solana.