You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询特定日期持有指定ERC-20代币的所有钱包地址?

查询特定日期持有指定ERC-20代币的全部钱包地址可行方案

要获取特定日期(比如2019年5月1日)持有指定ERC-20代币(如$LINK)的所有钱包地址,仅靠evt_transfer事件确实无法实现——因为该事件只记录当日发生代币转移的地址,完全遗漏了那些当日无交易但持续持有代币的地址。以下是几种可行的解决思路:

1. 基于目标区块高度的余额回溯查询

  • 步骤1:确定目标日期对应的区块高度
    先找到目标日期对应的以太坊区块高度(例如2019年5月1日对应的区块高度约为7278488),可通过区块浏览器或链上数据工具查询日期与区块高度的映射关系。
  • 步骤2:生成候选地址列表
    从该ERC-20合约的所有历史Transfer事件中提取所有from和to地址,去重后得到所有曾与该合约交互过的地址集合,作为后续查询的候选列表。
  • 步骤3:批量查询目标区块的余额
    针对每个候选地址,调用合约的balanceOf(address)方法并指定查询的区块高度,筛选出余额大于0的地址,即为目标日期的持币地址。

2. 解析全节点状态快照

  • 如果自行运行以太坊全节点,可以导出目标区块高度的状态快照。
  • 根据该ERC-20合约的ABI,推导余额存储槽的计算规则(ERC-20的balanceOf通常对应mapping(address => uint256)类型的存储,存储槽位置可通过合约存储结构计算得出),直接从快照中解析出所有持有余额的地址。

3. 利用链上数据平台的批量查询能力

  • 部分链上数据分析工具支持指定区块高度的批量余额查询功能,可将生成的候选地址列表导入,批量获取目标区块下的余额数据,再筛选出符合条件的地址。
  • 若候选地址数量过大,需分批次处理,避免触发接口调用限制。

内容的提问来源于stack exchange,提问作者maharishi444

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 05:15:31