Wallet API 处于 Beta 阶段。端点和响应格式可能会改变。
概览
Wallet Balances 端点检索 Solana 钱包中所有代币和 NFT 持有量 — 包括 SOL、SPL 代币、Token-2022 和 NFT — 提供美元定价、标志和元数据。结果按美元价值以降序排序:具有定价数据的代币先出现,然后是没有价格的代币。 该端点每次请求返回最多 100 个代币,因此分页是手动的。使用page 参数获取更多页面,并阅读 pagination.hasMore 以了解何时有更多结果可用。每次请求是一次单一的 API 调用,消耗 100 积分。
美元价格来源于 DAS,每小时更新,涵盖市值排名前 10,000 的代币。
pricePerToken 和 usdValue 是对于不支持代币的 null。价格为估值,不是实时市场价格。何时使用
在需要以下功能时使用 Wallet Balances API:- 显示投资组合持有量:向用户展示其完整的代币和 NFT 持有量。
- 计算美元价值:通过每小时更新的定价获取投资组合估值。
- 构建钱包 UI:支持钱包仪表板和资产列表。
- 跟踪代币持有量:监控跨钱包的特定代币余额。
- 投资组合分析:分析持有分布和集中度。
- 税务报告:生成用于税务目的的持有量快照。
快速开始
基本余额查询
获取钱包的所有代币余额和美元价值:- JavaScript
- Python
- cURL
在结果中包含 NFTs
通过showNfts=true 在一个请求中同时获取代币和 NFTs:
- JavaScript
- Python
过滤结果
使用查询参数来缩小返回的内容范围:查询参数
响应格式
字段说明
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个代币的钱包,使用参数page和pagination.hasMore分页获取结果:
最佳实践
- 过滤零余额以获得更清晰的UI。 使用
showZeroBalance=false隐藏钱包不再持有的代币。 - 仅在需要时包含NFT。 为提高性能,默认不包含NFT;仅在显示时设置
showNfts=true。 - 处理缺失的价格数据。 显示前,请始终检查
pricePerToken和usdValue是否为null。这些是DAS提供的每小时估算,而非实时市场价格。 - 缓存响应。 为减少API调用,余额数据可缓存数秒。
- 分页处理大型钱包。 某些钱包持有数千代币,需实现分页以高效处理。
常见错误
下一步
历史余额
获取特定时间戳、日期时间或槽位的代币或SOL余额。
钱包API概述
所有钱包API终端点和共享约定。
API参考
请求和响应架构用于钱包余额。