Etherscan API技术问询:如何按区块ID或日期获取全部交易?
解决方案:通过Etherscan API获取指定区块/日期范围的全部交易
方法1:直接调用区块交易详情接口
Etherscan提供了兼容以太坊JSON-RPC的接口,可以直接拉取指定区块的完整交易列表:
请求示例:
https://api.etherscan.io/api?module=proxy&action=eth_getBlockByNumber&tag=0xB6E66E&boolean=true&apikey=YourApiKeyToken
tag:填区块号的十六进制格式(比如区块11947974对应0xB6E66E),也可以用latest获取当前最新区块boolean:设为true返回完整交易详情(包含发送方、接收方、金额、Gas等),设为false仅返回交易哈希apikey:你的Etherscan API密钥(免费额度足够普通场景使用)
返回结果里的transactions字段就是该区块的全部交易集合。
方法2:按日期范围批量获取交易
如果需要按日期筛选,先把日期转换为对应的区块范围,再批量拉取:
- 转换日期到区块号:
https://api.etherscan.io/api?module=block&action=getblocknobytime×tamp=1609459200&closest=before&apikey=YourApiKeyToken
timestamp:目标日期的Unix时间戳closest:before返回该时间点之前的最近区块,after返回之后的最近区块
- 遍历得到的区块范围,对每个区块调用方法1的接口,最后整合所有交易数据。
注意事项
- 免费API密钥有频率限制:每分钟最多5次请求,付费密钥可提升额度
- 如果需要获取全网所有交易,API方式效率较低,建议同步本地以太坊节点(如Geth、Erigon);但小规模需求用API完全足够
- 避免频繁调用
latest区块接口,防止触发限流
内容的提问来源于stack exchange,提问作者Satish Verma
相关产品推荐
相关产品推荐

