Skip to main content
增强型交易API是处于维护模式的旧版产品。它仍然有效,这些页面可供使用,但不再接收新的解析器类型或功能开发。它的继任者是解析事件,通过IDL目录解码指令,现处于封闭测试阶段。您还可以使用getTransactionsForAddress进行交易历史和回填,使用钱包API获取人类可读的钱包数据。

概述

交易历史端点返回任何Solana地址的人类可读交易历史。相比处理原始指令数据和账户列表,您将获得结构化的信息:
  • 交易中发生了什么(转账、交换、NFT活动)。
  • 涉及了哪些账户。
  • 转移了多少SOL或多少代币。
  • 相关元数据(代币铸造地址、代币名称、代币符号等)。
发送一个GET请求到/v0/addresses/{address}/transactions。在底层,该端点由getTransactionsForAddress RPC方法支持。

何时使用

  • 您向用户显示一个地址的交易历史(钱包、投资组合跟踪器、探索器)。
  • 您希望获得无须编写解码器的人类可读历史。
  • 您需要按交易类型、时间范围或槽位范围过滤历史。
  • 您需要一个钱包的完整代币历史,包括关联的代币账户(ATAs)——请参见下文。
对于新构建,getTransactionsForAddress是现代的、Helius原生的路径,具备服务器端过滤和代币账户查询。

快速开始

1

获取您的API密钥

dashboard.helius.dev注册并复制您的API密钥。
2

获取地址交易端点

检索任何Solana地址的交易历史。
3

过滤和分页

使用下面的type、时间和槽位过滤器缩小结果,并通过签名光标翻页以处理高流量地址。

网络支持

请求参数

基于时间的过滤

基于槽位的过滤

过滤说明:
  • 时间参数使用Unix时间戳(自纪元以来的秒数);槽位参数使用Solana槽位号。
  • 不能在同一请求中合并时间和槽位过滤器。
  • 使用sort-order=asc进行升序(最旧优先)或sort-order=desc进行降序(最新优先)。
  • 当您知道大致的时期时,使用时间或槽位过滤器缩小搜索范围,并配合limit控制页面大小。

关联代币账户

在Solana上,钱包不会直接持有代币,而是钱包拥有代币账户,这些代币账户持有代币。当有人发送USDC给您时,它会进入您的USDC代币账户,而不是您的主钱包地址。 此端点的独特之处在于它能够查询钱包的完整代币历史,包括关联的代币账户(ATAs)。本地RPC方法如getSignaturesForAddress不包括ATAs。 token-accounts过滤器控制此行为:
  • none(默认)— 仅返回直接引用钱包地址的交易。当您只关心直接钱包交互时使用此选项。
  • balanceChanged(推荐)— 返回引用钱包地址或修改由钱包拥有的代币账户余额的交易。此方式会筛除垃圾邮件和与钱包无关的操作(如费用收取或委托),为您提供有意义的清晰视图。
  • all — 返回引用钱包地址或任何由钱包拥有的代币账户的所有交易。
token-accounts过滤器依赖于代币余额元数据中的owner字段,该字段在槽位111,491,819(约2022年12月)之前不可用。在此槽位之前活跃的代币账户交易可能会在balanceChangedall结果中缺失。请参阅getTransactionsForAddress教程,了解完整代码示例的解决方案。

过滤器

按交易类型过滤

仅获取特定类型的交易,如NFT销售、代币转移或交换:
有关支持的交易类型的完整列表,请参阅交易历史API参考

运行时类型过滤

类型过滤是在运行时进行的:API按顺序搜索交易直至找到至少50个匹配项。如果在搜索窗口中找不到任何匹配项,它将返回错误并带有签名,以便继续搜索。这是预期的行为,并非故障。
当在当前搜索窗口中找不到匹配的交易时,API返回如下错误响应:
要继续,请使用错误消息中的签名和适当的参数(before-signature用于降序,after-signature用于升序)进行下一次请求。
关键点:
  • 使用类型过滤器时,API一次搜索最多50个交易。
  • 如果找不到匹配项,使用错误消息中的签名继续搜索。
  • 在降序(默认情况下,最新优先)搜索时使用before-signature
  • 在升序(最旧优先)搜索时使用after-signature — 对于按时间顺序的搜索是必需的。
  • 实施最大重试限制,以防止无限循环。

示例

以下场景涵盖时间和槽位范围、排序顺序、ATAs和组合过滤器。
获取特定时间窗口内的交易:
获取特定槽位范围内的交易:
获取升序(最旧优先)的交易:
查询钱包的完整历史,包括关联代币地址(ATAs):
将类型过滤与时间范围和自定义排序顺序组合:

分页

对于高流量地址,使用每批次的最后一个签名作为光标翻页查看结果:
要在一个时间范围内分页,请在每个请求上保留时间过滤器,并在每次循环中推进before-signature光标:

后续步骤

getTransactionsForAddress

现代的、Helius原生的交易历史和回填替代品。

钱包API

人类可读的钱包数据的REST端点:余额、历史和转移。

解析交易

将一个或多个交易签名解析成人类可读数据。

获取数据概述

比较每个Helius选项以查询Solana数据。