钱包 API 处于 Beta 阶段。端点和响应格式可能会更改。
概述
Transaction History 端点使用增强交易 API 检索 Solana 钱包的完整交易历史记录。它返回可读的、解析后的交易及每笔交易的余额变化,以时间倒序(最新的优先)。 该端点每次请求最多返回 100 笔交易,因此分页是手动的。使用before 参数和 pagination.nextCursor 以获取下一页,并查看 pagination.hasMore 了解是否有更多结果可用。每个请求是一个 API 调用,消耗 100 个积分。
tokenAccounts 参数控制是否包括钱包拥有的代币账户的交易:
balanceChanged(推荐):包括改变代币账户余额的交易,过滤垃圾信息。none:仅限于直接的账户互动。all:所有代币账户交易,包括垃圾信息。
何时使用
需要使用 Transaction History API 的情况:- 显示交易动态:向用户展示完整的交易历史。
- 计算损益:跟踪所有交易的收益和损失。
- 税务和会计:生成完整的交易报告以进行报税。
- 投资组合分析:分析交易模式和活动。
- 审计追踪:维护完整的钱包活动记录。
- 余额重建:从历史数据重建当前余额。
快速开始
基本历史查询
获取最近余额变化的交易:- JavaScript
- Python
- cURL
完整历史的分页
使用参数before 分页获取所有交易:
- JavaScript
- Python
查询参数
可用的交易类型
参数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表示接收到的代币,负数amount表示发送或花费的代币。mint(在balanceChanges内): 代币铸造地址,或本地 SOL 为"SOL"。amount(在balanceChanges内): 人类可读,已除以decimals—-0.05表示 −0.05 SOL,而不是 −0.05 lamports。此端点不包括原始amountRaw字段。
示例余额变化
用例
计算总交易量
汇总所有转账以获得交易量:生成税务报告
创建用于报税的交易报告:跟踪失败的交易
查找所有失败的交易以了解错误:重建历史余额
计算特定时间点的余额:分析交易费用
计算支付的总费用:最佳实践
- 使用分页获取完整历史记录。 有些钱包有成千上万的交易;在获取所有交易时,请始终分页。
- 缓存历史数据。 历史交易不会更改。将它们缓存在本地,仅获取新的交易。
- 处理失败的交易。 检查
error字段以区分成功和失败的交易。失败的交易仍会产生费用。 - 使用时间戳进行日期过滤。 时间戳是 Unix 秒。转换为本地日期进行显示和过滤。
常见错误
后续步骤
Token Transfers
仅限转账视图,包含发送者/接收者信息,比完整历史简单。
Wallet API Overview
所有 Wallet API 端点和共享约定。
API Reference
交易历史的请求和响应模式。