Hedera官方API查询AccountId与PublicKey返回交易数量不一致问题
Hedera Mirror Node API交易查询差异解析
问题现象
使用Hedera官方Mirror Node API查询时出现以下差异:
- 通过AccountId
0.0.1261794查询交易,仅返回2笔结果,与Hedera浏览器显示内容一致 - 通过该账户关联的公钥
e2cc4c84391f5d9fd74dcf8199fb0bcd9c629f4d9aaa223649aad2814c56e6ba查询交易,返回20多笔结果
涉及的API调用参数:
- 账户查询:
/api/v1/accounts?account.id=0.0.1261794 - 按AccountId查交易:
/api/v1/transactions?account.id=0.0.1261794 - 按公钥查交易:
/api/v1/transactions?account.publickey=e2cc4c84391f5d9fd74dcf8199fb0bcd9c629f4d9aaa223649aad2814c56e6ba
核心原因
两个查询参数的逻辑存在本质区别:
account.id参数:仅返回与指定AccountId直接绑定的交易,涵盖范围包括:- 该账户发起的转账、合约调用等主动操作
- 资金转入/转出该账户的被动交易
- 账户创建、更新、删除等账户生命周期操作
这与Hedera浏览器默认展示的交易范围一致,所以结果匹配。
account.publickey参数:返回所有使用该公钥完成签名的交易,范围更宽泛:- 除了该账户自身的交易外,还包含该公钥作为签名者参与的多签名交易、智能合约部署/调用签名、其他账户操作的签名等
- 若该公钥曾关联过其他账户(比如账户更新更换公钥前的历史交易、同一公钥复用在其他测试账户),这些账户的交易也会被纳入结果
验证方向
- 查看公钥查询返回的额外交易详情,检查
account_ids字段,确认交易关联的其他账户信息 - 核实该公钥是否参与过多签名合约、跨账户授权等场景的签名操作
内容的提问来源于stack exchange,提问作者UMANG AWASTHY
相关产品推荐
相关产品推荐

