概述
交易历史端点返回任何Solana地址的人类可读交易历史。相比处理原始指令数据和账户列表,您将获得结构化的信息:- 交易中发生了什么(转账、交换、NFT活动)。
- 涉及了哪些账户。
- 转移了多少SOL或多少代币。
- 相关元数据(代币铸造地址、代币名称、代币符号等)。
GET请求到/v0/addresses/{address}/transactions。在底层,该端点由getTransactionsForAddress RPC方法支持。
何时使用
- 您向用户显示一个地址的交易历史(钱包、投资组合跟踪器、探索器)。
- 您希望获得无须编写解码器的人类可读历史。
- 您需要按交易类型、时间范围或槽位范围过滤历史。
- 您需要一个钱包的完整代币历史,包括关联的代币账户(ATAs)——请参见下文。
getTransactionsForAddress是现代的、Helius原生的路径,具备服务器端过滤和代币账户查询。
快速开始
1
获取您的API密钥
在dashboard.helius.dev注册并复制您的API密钥。
2
获取地址交易端点
检索任何Solana地址的交易历史。
- JavaScript
- Python
3
过滤和分页
使用下面的
type、时间和槽位过滤器缩小结果,并通过签名光标翻页以处理高流量地址。网络支持
请求参数
基于时间的过滤
基于槽位的过滤
过滤说明:
- 时间参数使用Unix时间戳(自纪元以来的秒数);槽位参数使用Solana槽位号。
- 不能在同一请求中合并时间和槽位过滤器。
- 使用
sort-order=asc进行升序(最旧优先)或sort-order=desc进行降序(最新优先)。 - 当您知道大致的时期时,使用时间或槽位过滤器缩小搜索范围,并配合
limit控制页面大小。
关联代币账户
在Solana上,钱包不会直接持有代币,而是钱包拥有代币账户,这些代币账户持有代币。当有人发送USDC给您时,它会进入您的USDC代币账户,而不是您的主钱包地址。 此端点的独特之处在于它能够查询钱包的完整代币历史,包括关联的代币账户(ATAs)。本地RPC方法如getSignaturesForAddress不包括ATAs。
token-accounts过滤器控制此行为:
none(默认)— 仅返回直接引用钱包地址的交易。当您只关心直接钱包交互时使用此选项。balanceChanged(推荐)— 返回引用钱包地址或修改由钱包拥有的代币账户余额的交易。此方式会筛除垃圾邮件和与钱包无关的操作(如费用收取或委托),为您提供有意义的清晰视图。all— 返回引用钱包地址或任何由钱包拥有的代币账户的所有交易。
过滤器
按交易类型过滤
仅获取特定类型的交易,如NFT销售、代币转移或交换:- NFT销售
- 代币转移
- 交换
运行时类型过滤
类型过滤是在运行时进行的:API按顺序搜索交易直至找到至少50个匹配项。如果在搜索窗口中找不到任何匹配项,它将返回错误并带有签名,以便继续搜索。这是预期的行为,并非故障。
before-signature用于降序,after-signature用于升序)进行下一次请求。
类型过滤器的连续循环(完整示例)
类型过滤器的连续循环(完整示例)
- 使用类型过滤器时,API一次搜索最多50个交易。
- 如果找不到匹配项,使用错误消息中的签名继续搜索。
- 在降序(默认情况下,最新优先)搜索时使用
before-signature。 - 在升序(最旧优先)搜索时使用
after-signature— 对于按时间顺序的搜索是必需的。 - 实施最大重试限制,以防止无限循环。
示例
以下场景涵盖时间和槽位范围、排序顺序、ATAs和组合过滤器。按时间范围过滤
按时间范围过滤
获取特定时间窗口内的交易:
- 过去24小时
- 特定日期范围
按槽位范围过滤
按槽位范围过滤
获取特定槽位范围内的交易:
更改排序顺序
更改排序顺序
获取升序(最旧优先)的交易:
包括相关代币账户的转移
包括相关代币账户的转移
查询钱包的完整历史,包括关联代币地址(ATAs):
组合多种过滤器
组合多种过滤器
将类型过滤与时间范围和自定义排序顺序组合:
分页
对于高流量地址,使用每批次的最后一个签名作为光标翻页查看结果:before-signature光标:
后续步骤
getTransactionsForAddress
现代的、Helius原生的交易历史和回填替代品。
钱包API
人类可读的钱包数据的REST端点:余额、历史和转移。
解析交易
将一个或多个交易签名解析成人类可读数据。
获取数据概述
比较每个Helius选项以查询Solana数据。