如何获取特定时间点的代币及Hbar账户余额?
问题翻译
我在一个项目中需要获取代币余额及账户余额,想了解是否可以获取昨日或任意时间点的代币及HBAR(账户余额)?截至目前,我尝试拉取特定时间戳的所有交易以查看是否包含该时间点的余额,但API未返回相关信息。以下是我尝试的两个查询:
交易请求:
https://testnet.mirrornode.hedera.com/api/v1/transactions/0.0.10918-1680795651-328812066
交易前的代币查询请求:https://testnet.mirrornode.hedera.com/api/v1/tokens/0.0.3332842?timestamp=1680795000
请告知我如何获取特定时间点的余额?
获取Hedera特定时间点的HBAR及代币余额
针对你的需求,Hedera Mirror Node API提供了精准的接口来获取指定时间点的余额数据,以下是具体方案:
一、获取特定时间点的HBAR账户余额
使用账户余额历史接口,通过timestamp参数定位目标时间点的余额:
GET /api/v1/accounts/{accountId}/balances?timestamp={targetTimestamp}
- 示例:查询账户
0.0.10918在1680795000时间点的HBAR余额
GET /api/v1/accounts/0.0.10918/balances?timestamp=1680795000
接口会返回截至指定时间戳时账户的HBAR余额,以及余额变更的历史记录。
二、获取特定时间点的代币余额
对于自定义代币,需使用账户代币余额历史接口,通过timestamp参数筛选:
GET /api/v1/accounts/{accountId}/tokens/{tokenId}/balances?timestamp={targetTimestamp}
- 示例:查询账户
0.0.10918持有代币0.0.3332842在1680795000时间点的余额
GET /api/v1/accounts/0.0.10918/tokens/0.0.3332842/balances?timestamp=1680795000
若需批量查询某账户的所有代币历史余额,可省略tokenId:
GET /api/v1/accounts/{accountId}/tokens/balances?timestamp={targetTimestamp}
三、你之前尝试的问题说明
你调用的/api/v1/tokens/{tokenId}接口仅返回代币本身的属性(如名称、总供应量),而非账户持有该代币的余额;交易接口仅输出交易详情,不会直接返回时间点余额快照,因此无法得到目标数据。
四、额外注意事项
- 时间戳参数支持精确到纳秒的格式(如
1680795000.000000000),也支持相对时间表达式(如now-24h代表昨日此时)。 - 若指定时间点无余额变更记录,接口会返回该时间点之前最近一次的余额数据,这符合“特定时间点余额”的实际业务逻辑(即截至该时间点的最终余额)。
内容的提问来源于stack exchange,提问作者Mulders Michiel
相关产品推荐
相关产品推荐

