Skip to main content
Wallet API находится на стадии бета-тестирования. Эндпоинты и форматы ответов могут измениться.

Обзор

Эндпоинт Transaction History получает полную историю транзакций кошелька Solana с помощью Enhanced Transactions API. Он возвращает разобранные транзакции в удобочитаемом формате с изменениями баланса для каждой транзакции в обратном хронологическом порядке (сначала новые). Эндпоинт возвращает до 100 транзакций на запрос, поэтому пагинацию необходимо выполнять вручную. Чтобы получить следующую страницу, используйте параметр before со значением pagination.nextCursor. Проверяйте pagination.hasMore, чтобы узнать, доступны ли дополнительные результаты. Каждый запрос представляет собой один вызов API и расходует 100 кредитов. Параметр tokenAccounts определяет, включать ли транзакции, связанные с принадлежащими кошельку аккаунтами токенов:
  • balanceChanged (рекомендуется): включает транзакции, которые изменили балансы аккаунтов токенов, и отфильтровывает спам.
  • none: только прямые взаимодействия с кошельком.
  • all: все транзакции аккаунтов токенов, включая спам.
Фильтр tokenAccounts использует поле owner в метаданных баланса токенов, которое было недоступно до слота 111 491 819 (примерно до декабря 2022 года). Транзакции с аккаунтами токенов, активными до этого слота, могут отсутствовать. Обходное решение описано в руководстве по getTransactionsForAddress.

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

Используйте Transaction History API, если вам нужно:
  • Отобразить ленту транзакций: покажите пользователям полную историю их транзакций.
  • Рассчитать PnL: отслеживайте прибыль и убытки по всем транзакциям.
  • Налоговый и бухгалтерский учет: создавайте полные отчеты о транзакциях для подачи налоговой декларации.
  • Аналитика портфеля: анализируйте торговые модели и активность.
  • Аудиторские журналы: храните полные записи об активности кошелька.
  • Восстановление баланса: восстанавливайте текущие балансы по историческим данным.

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

Базовый запрос истории

Получите последние транзакции с изменениями баланса:

Пагинация для получения полной истории

Получите все транзакции с помощью пагинации и параметра before:

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

Доступные типы транзакций

Параметр type поддерживает фильтрацию по следующим типам транзакций: SWAP, TRANSFER, NFT_SALE, NFT_BID, NFT_LISTING, NFT_MINT, NFT_CANCEL_LISTING, TOKEN_MINT, BURN, COMPRESSED_NFT_MINT, COMPRESSED_NFT_TRANSFER, COMPRESSED_NFT_BURN, CREATE_STORE, WHITELIST_CREATOR, ADD_TO_WHITELIST, REMOVE_FROM_WHITELIST, AUCTION_MANAGER_CLAIM_BID, EMPTY_PAYMENT_ACCOUNT, UPDATE_PRIMARY_SALE_METADATA, ADD_TOKEN_TO_VAULT, ACTIVATE_VAULT, INIT_VAULT, INIT_BANK, INIT_STAKE, MERGE_STAKE, SPLIT_STAKE, CREATE_AUCTION_MANAGER, START_AUCTION, CREATE_AUCTION_MANAGER_V2, UPDATE_EXTERNAL_PRICE_ACCOUNT, EXECUTE_TRANSACTION

Примеры фильтров

Формат ответа

Примечания к полям

  • timestamp: время Unix в секундах. Для совсем недавних транзакций, которые еще не были полностью обработаны, значением может быть null.
  • error: null для успешных транзакций; значение ошибки для неудачных. За неудачные транзакции комиссия также взимается.
  • balanceChanges: изменение активов кошелька в результате транзакции — положительное значение amount означает получение токенов, а отрицательное — отправку или расходование токенов.
  • mint (в balanceChanges): адрес минта токена или "SOL" для нативного SOL.
  • amount (в balanceChanges): удобочитаемое значение, уже разделенное на decimals — -0.05 означает −0,05 SOL, а не −0,05 лампорта. Этот эндпоинт не включает необработанное поле amountRaw.

Пример изменений баланса

Варианты использования

Расчет общего объема торговли

Суммируйте все переводы, чтобы получить объем торговли:

Создание налогового отчета

Создайте отчет о транзакциях для подачи налоговой декларации:

Отслеживание неудачных транзакций

Найдите все неудачные транзакции, чтобы разобраться в ошибках:

Восстановление исторического баланса

Рассчитайте баланс на определенный момент времени:
Чтобы получить точный баланс одного токена на определенный момент времени, используйте эндпоинт Historical Balance. Он считывает значение непосредственно из итоговых балансов в блокчейне, а не суммирует изменения на стороне клиента.

Анализ комиссий за транзакции

Рассчитайте общую сумму уплаченных комиссий:

Рекомендации

  • Используйте пагинацию для получения полной истории. Некоторые кошельки содержат сотни тысяч транзакций. При получении всех транзакций всегда используйте пагинацию.
  • Кэшируйте исторические данные. Исторические транзакции никогда не меняются. Кэшируйте их локально и получайте только новые транзакции.
  • Обрабатывайте неудачные транзакции. Проверяйте поле error, чтобы отличать успешные транзакции от неудачных. За неудачные транзакции комиссия также взимается.
  • Используйте временные метки для фильтрации по дате. Временные метки указаны в секундах Unix. Для отображения и фильтрации преобразуйте их в локальные даты.

Распространенные ошибки

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

Token Transfers

Представление только переводов с информацией об отправителе и получателе — проще, чем полная история.

Wallet API Overview

Все эндпоинты Wallet API и общие соглашения.

API Reference

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