Tokens

特定時間的代幣持有者名單

  • July 16, 2021

在特定時間獲取代幣(ERC20)持有者名單及其餘額的最佳方式是什麼?謝謝你。

ERC-20 代幣不維護目前代幣持有者的可迭代列表,使用的mapping類型僅允許您檢查已知地址 - 餘額。要獲取所有代幣持有者的列表,您需要離線處理並根據區塊鏈數據自行建構。

我創建了一個獨立工具,用於收集 ERC-20 代幣持有者和交易到 SQLite 數據庫

  • 取一個代幣合約地址
  • 使用JSON-RPC API遍歷Transfer令牌的所有事件eth_getLogs
  • 建立這些事件的本地數據庫
  • 允許您使用 SQL 查詢任何時間點(區塊編號)的任何賬戶餘額,只需執行SUM()區塊 1 - 結束區塊之間的賬戶餘額更改。

您可以在此處找到如何建構令牌持有者數據庫的命令行應用程序執行範例

核心 Python 邏輯在這裡

到處都有一些怪癖:例如,檢測某些令牌的鑄幣/創建事件並不簡單。因此,如果您僅依賴Transfer事件,您可能會在接收初始總供應量的帳戶上出現負餘額。

這種方法並不總是有效,但它不需要編寫程式碼。

  1. 轉到您要從中獲取代幣持有者的代幣的 etherscan 頁面。(即https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#balances
  2. 點擊 holder 表的分析列下的小圖形圖示。
  3. 彈出的新頁面有一個隨時間變化的代幣餘額圖表。檢查它是否在您想要的特定時間持有令牌。

如果代幣有很多持有者,這不會太有用,但是,對於持有者較少的代幣,或者如果您只需要一個在特定時間持有代幣的地址進行測試,這非常有用!

引用自:https://ethereum.stackexchange.com/questions/36274