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

Обзор

Конечная точка Wallet Balances возвращает все токены и NFT в кошельке Solana — SOL, токены SPL, Token-2022 и NFT — вместе с ценами в USD, логотипами и метаданными. Результаты сортируются по стоимости в USD в порядке убывания: сначала отображаются токены, для которых доступны данные о цене, а затем токены без цены. Конечная точка возвращает до 100 токенов за запрос, поэтому разбивку на страницы нужно реализовать вручную. Используйте параметр page для получения дополнительных страниц и проверяйте pagination.hasMore, чтобы узнать, доступны ли другие результаты. Каждый запрос представляет собой один вызов API и расходует 100 кредитов.
Цены в USD поступают из DAS и обновляются ежечасно. Они охватывают 10 000 крупнейших токенов по рыночной капитализации. Для неподдерживаемых токенов значения pricePerToken и usdValue равны null. Цены являются оценочными, а не рыночными ценами в реальном времени.

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

Используйте Wallet Balances API, если вам нужно:
  • Отображать содержимое портфеля: показывайте пользователям все принадлежащие им токены и NFT.
  • Рассчитывать стоимость в USD: получайте оценку портфеля на основе цен, обновляемых ежечасно.
  • Создавать интерфейсы кошельков: реализуйте панели управления кошельками и списки активов.
  • Отслеживать токены: контролируйте балансы определенных токенов в разных кошельках.
  • Анализировать портфель: анализируйте распределение и концентрацию активов.
  • Готовить налоговую отчетность: создавайте снимки активов для налоговой отчетности.

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

Базовый запрос баланса

Получите балансы всех токенов в кошельке вместе со стоимостью в USD:

Добавление NFT в результаты

Получите токены и NFT в одном запросе с помощью showNfts=true:

Фильтрация результатов

Используйте параметры запроса, чтобы ограничить возвращаемые данные:

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

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

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

  • balance: удобочитаемое количество, уже скорректированное с учетом десятичных знаков — 1.5 означает 1,5 SOL, а 1000.5 — 1000,5 USDC. Преобразование лампортов не требуется. Эта конечная точка не предоставляет необработанное поле amountRaw. Если вам нужно точное целочисленное значение, вычислите его как Math.round(balance * 10 ** decimals).
  • decimals: предоставляется только для справки.
  • pricePerToken / usdValue: значение null для токенов без данных о цене из DAS (см. примечание о ценах выше).
  • totalUsdValue: общая стоимость в USD только для текущей страницы ответа. Чтобы получить стоимость всего портфеля, запросите все страницы и сложите значения usdValue для каждого баланса.
  • tokenProgram: стандарт, используемый каждым токеном — spl-token (устаревший SPL Token) или token-2022 (Token Extensions). Оба стандарта полностью поддерживаются.

Сценарии использования

Создание панели управления портфелем

Отображайте активы пользователя вместе со стоимостью в USD:

Расчет концентрации токенов

Анализируйте диверсификацию портфеля:

Отслеживание баланса определенного токена

Отслеживайте определенный токен в нескольких кошельках:

Экспорт активов для налоговой отчетности

Создайте снимок активов:

Разбивка на страницы

Для кошельков, содержащих более 100 токенов, перебирайте страницы результатов с помощью параметра page и pagination.hasMore:
NFT возвращаются только на первой странице (не более 100) независимо от разбивки токенов на страницы.

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

  • Отфильтровывайте нулевые балансы, чтобы сделать интерфейс понятнее. Используйте showZeroBalance=false, чтобы скрыть токены, которых больше нет в кошельке.
  • Включайте NFT только при необходимости. По умолчанию NFT исключены для повышения производительности. Задавайте showNfts=true только при необходимости их отображения.
  • Обрабатывайте отсутствие данных о цене. Перед отображением всегда проверяйте, равны ли pricePerToken и usdValue значению null. Это ежечасные оценки от DAS, а не рыночные цены в реальном времени.
  • Кешируйте ответы. Данные о балансах можно кешировать на несколько секунд, чтобы сократить количество вызовов API.
  • Используйте разбивку на страницы для крупных кошельков. Некоторые кошельки содержат тысячи токенов. Реализуйте разбивку на страницы для их эффективной обработки.

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

Дальнейшие действия

Historical Balance

Получите баланс токена или SOL для прошлой метки времени, даты и времени либо слота.

Wallet API Overview

Все конечные точки Wallet API и общие соглашения.

API Reference

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