getSignaturesForAddress
RPC 方法允许您检索涉及特定账户地址的已确认交易签名列表。这对于获取账户的交易历史非常有用。签名按时间倒序返回(最新的在前)。
常见用例
- 账户交易历史: 显示用户钱包的过去交易。对于更高级的交易历史解析,考虑使用 Helius 的增强交易 API。
- 活动审计: 审查与特定智能合约或账户相关的所有交易。
- 特定交易查找: 如果只知道涉及的地址,通过遍历账户历史查找特定交易。
- 数据索引: 构建本地化的交易索引以加快查询和分析。
请求参数
address
(string
):(必需)要检索交易签名的账户的 base-58 编码公钥。options
(object
,可选):一个可选的配置对象,包含以下字段:limit
(number
,可选):要返回的最大签名数。默认是 1000,最大允许是 1000。before
(string
,可选):一个 base-58 编码的交易签名。如果提供,查询将从此签名之前开始搜索交易。until
(string
,可选):一个 base-58 编码的交易签名。如果提供,查询将搜索到达此签名为止的交易(不包括此签名)。commitment
(string
,可选):指定用于查询的承诺级别。支持的值是finalized
、confirmed
或processed
。如果省略,则使用 RPC 节点的默认承诺(通常是finalized
)。minContextSlot
(number
,可选):请求可以评估的最小槽位。这不是对历史交易的过滤,而是为节点的上下文设置最小槽位。
响应结构
JSON-RPC 响应的result
字段是一个签名信息对象的数组。每个对象具有以下结构:
signature
(string
): base-58 编码的交易签名。slot
(u64
): 交易被处理的槽位。err
(object
|null
): 如果交易失败则为错误对象,成功则为null
。memo
(string
|null
): 交易相关的备忘录(如果有)。blockTime
(i64
|null
): 包含交易的区块的估计生产时间,以 Unix 时间戳表示(自纪元以来的秒数)。如果不可用则为null
。confirmationStatus
(string
|null
): 交易的确认状态(例如,processed
,confirmed
,finalized
)。如果不可用(例如,对于较旧的 Helius 响应)则为null
。
示例
1. 获取地址的最新签名
此示例获取给定地址的最近(最多 1000 个)交易签名。2. 获取有限制的签名
此示例获取指定数量的地址的最近交易签名。3. 分页获取交易历史
此示例演示如何使用before
参数分批获取交易历史。
开发者提示
- 分页: 要获取活跃账户的完整交易历史,您可能需要进行多次请求,使用上一个批次中接收到的最后一个签名和
limit
参数。 - 速率限制: 在获取大量交易历史时,请注意 RPC 节点的速率限制。
- 顺序: 签名总是从最新到最旧返回。
limit
参数:limit
参数可以在 1 到 1000 之间。如果未指定,默认为 1000。until
参数: 此参数可用于在达到已知的较旧签名时停止获取签名,这在您只需要某个点之前的交易时很有用。minContextSlot
: 此参数不筛选历史交易。它指定 RPC 节点在评估请求时应使用的最小槽位。如果节点的状态早于此槽位,可能会返回错误。- 交易详情: 此方法仅返回签名和基本信息。要获取完整的交易详情,您需要对每个签名使用
getTransaction
方法。
getSignaturesForAddress
及其分页选项,您可以有效地检索和管理任何 Solana 地址的交易历史。