跳转到主要内容
Wallet API 处于 Beta 阶段。端点和响应格式可能会改变。

概览

Wallet Balances 端点检索 Solana 钱包中所有代币和 NFT 持有量 — 包括 SOL、SPL 代币、Token-2022 和 NFT — 提供美元定价、标志和元数据。结果按美元价值以降序排序:具有定价数据的代币先出现,然后是没有价格的代币。 该端点每次请求返回最多 100 个代币,因此分页是手动的。使用 page 参数获取更多页面,并阅读 pagination.hasMore 以了解何时有更多结果可用。每次请求是一次单一的 API 调用,消耗 100 积分。
美元价格来源于 DAS,每小时更新,涵盖市值排名前 10,000 的代币。pricePerTokenusdValue 是对于不支持代币的 null。价格为估值,不是实时市场价格。

何时使用

在需要以下功能时使用 Wallet Balances API:
  • 显示投资组合持有量:向用户展示其完整的代币和 NFT 持有量。
  • 计算美元价值:通过每小时更新的定价获取投资组合估值。
  • 构建钱包 UI:支持钱包仪表板和资产列表。
  • 跟踪代币持有量:监控跨钱包的特定代币余额。
  • 投资组合分析:分析持有分布和集中度。
  • 税务报告:生成用于税务目的的持有量快照。

快速开始

基本余额查询

获取钱包的所有代币余额和美元价值:

在结果中包含 NFTs

通过 showNfts=true 在一个请求中同时获取代币和 NFTs:

过滤结果

使用查询参数来缩小返回的内容范围:

查询参数

响应格式

字段说明

  • balance:可读金额,已调整为小数 — 1.5 代表 1.5 SOL,1000.5 代表 1000.5 USDC。无需转换 lamport。此端点不暴露原始 amountRaw 字段;如果需要确切的整数值,可如 Math.round(balance * 10 ** decimals) 派生。
  • decimals:仅供参考。
  • pricePerToken / usdValue:没有 DAS 定价数据的代币 null(见上面的价格说明)。
  • totalUsdValue:仅针对当前响应页的总 USD 值。若需全组合价值,通过所有页面分页并汇总每个余额的 usdValue
  • tokenProgram:每个代币所用的代币标准 — spl-token(传统 SPL 代币)或 token-2022(代币扩展)。两者均完全支持。

使用案例

构建投资组合仪表板

显示用户持有的 USD 值:

计算代币集中度

分析投资组合多样化:

跟踪特定代币余额

监控多个钱包中的特定代币:

导出持有信息用于税务报告

生成持有快照:

分页

对于超过100个代币的钱包,使用参数pagepagination.hasMore分页获取结果:
NFT仅在第一页返回(最多100个),不论代币分页如何。

最佳实践

  • 过滤零余额以获得更清晰的UI。 使用showZeroBalance=false隐藏钱包不再持有的代币。
  • 仅在需要时包含NFT。 为提高性能,默认不包含NFT;仅在显示时设置showNfts=true
  • 处理缺失的价格数据。 显示前,请始终检查pricePerTokenusdValue是否为null。这些是DAS提供的每小时估算,而非实时市场价格。
  • 缓存响应。 为减少API调用,余额数据可缓存数秒。
  • 分页处理大型钱包。 某些钱包持有数千代币,需实现分页以高效处理。

常见错误

下一步

历史余额

获取特定时间戳、日期时间或槽位的代币或SOL余额。

钱包API概述

所有钱包API终端点和共享约定。

API参考

请求和响应架构用于钱包余额。