在任何給定錢包中查找 ERC-20 代幣餘額都很簡單;當用戶打開錢包時,會自動顯示所有導入代幣的餘額。然而,當個人或實體(例如執法機構或企業)需要確定另一個地址的 ERC-20 代幣餘額時,無法直接訪問錢包。
在這種情況下,可以使用應用程序編程接口(API)來檢查錢包中的餘額。 API 將返回某個地址擁有的所有 ERC-20 代幣餘額,並可以自動檢查代幣餘額的過程。
本文討論如何使用 Chainbase、Alchemy 和 Moralis 的 API 來獲取某個地址所擁有的 ERC-20 代幣的信息。
使用 Chainbase 查找某個地址擁有的所有 ERC-20 代幣的分步指南
Chainbase是一個Web3區塊鏈交互層基礎設施,提供API服務來幫助開發人員快速訪問和利用區塊鏈網絡。其API方便鏈上數據查詢。
要使用 Chainbase,用戶需要在平臺上擁有一個帳戶,並提供 API 密鑰、集成開發環境和錢包地址作爲輸入。
第 1 步:創建免費帳戶並登錄
在 Chainbase 上註冊免費帳戶並訪問不同的 API 及其數據雲。然後登錄 Chainbase 並訪問儀表板。在控制檯中啓動一個新項目並獲取 API 密鑰。
步驟2:使用Chainbase API編寫腳本
接下來是對 Chainbase 進行 API 調用以檢索 ERC-20 代幣餘額。下面的示例使用 Javascript。後續操作需要使用 JavaScript 執行 HTTP 請求,利用 Axios 庫從 Chainbase 獲取 ERC-20 代幣餘額。
使用“fetch”發出 HTTP 請求以從服務器檢索數據,如下面的代碼片段所示:
上面示例中的代碼查詢 Chainbase 以獲取以太坊主網上錢包(以 Vitalik Buterin 的地址爲例)的前 5 個 ERC-20 代幣餘額,顯示結果或遇到的任何錯誤。
雖然原生 Fetch API 是使用 JavaScript 執行 HTTP 請求的常見方法,但在示例代碼中,“抓取”在概念上是由 Axios 完成的,而不是由原生 Fetch API 完成的。要使用 Axios,用戶必須在終端中使用“npm install axios --save”來安裝它。
上面的代碼使用 JavaScript 中的 Axios 向 Chainbase 查詢 Vitalik Buterin 錢包在以太坊主網上的前 5 個 ERC-20 代幣餘額。
第三步:打印代幣餘額
Chainbase 的 getAccountTokens API 使用鏈 ID 和錢包地址作爲參數,返回錢包擁有的所有 ERC-20 代幣餘額。用戶還可以通過填寫“contract_address”字段來查找有關特定代幣的信息。要打印數據,用戶必須在終端中運行命令“node <filename>.js”。
上面的代碼片段顯示了給定錢包中多個 ERC-20 代幣的餘額和信息,包括 Eterium、Uniswap V2、dYdX 等。
使用 Alchemy 查找某個地址擁有的所有 ERC-20 代幣的分步指南
Alchemy 提供用作平臺層的 API,讀取或寫入區塊鏈並提供開發人員所需的精確信息。以下是通過Alchemy獲取代幣餘額的過程:
第 1 步:安裝 Node 和 NPM
在本地計算機上安裝 Node 和 Node Package Manager (NPM)。 Node 是一個跨平臺、開源 JavaScript 運行時環境,而 NPM 提供對龐大的庫和工具生態系統的訪問。
第 2 步:註冊 Alchemy 帳戶並創建應用程序
在 Alchemy 網站上,註冊一個免費帳戶。然後,登錄並導航到“Alchemy 儀表板”以創建一個新應用程序。將區塊鏈設置爲“以太坊”,將網絡設置爲“主網”。單擊儀表板上應用程序的“查看密鑰”按鈕,並記下 HTTP URL 和 API 密鑰。
URL 將採用以下形式:https://eth-mainnet.g.alchemy.com/v2/xxxxxxxxx
第三步:創建Node項目
下一步涉及初始化一個空存儲庫並安裝所需的 Node.js 依賴項。對於 API 交互,特別是與代幣 API 的交互,用戶需要使用 Alchemy 軟件開發工具包 (SDK),儘管 Axios 或 Fetch 可以作爲合適的替代方案。
Axios 是一個 Javascript 庫,用於從節點發出 HTTP 請求。 Fetch API 是 Node 中的內置模塊,有助於在服務器上發出 API 請求並處理響應。 Alchemy SDK是一個程序函數庫,支持訪問底層數據模型和技術。
代碼如下:
該代碼將創建一個存儲庫“eth-balance”,其中包含所有文件和依賴項,並且代碼將寫入“main.js”文件中。
第四步:獲取地址的代幣餘額
要檢索代幣餘額,用戶可以使用 getTokenBalances 方法,該方法需要一個參數:需要代幣餘額的錢包地址。然後,用戶需要將以下代碼添加到 main.js 文件中。
使用以下命令運行腳本:
輸出將顯示如下:
上面的代碼顯示地址 0xd8da6bf26964af9d7eed9e03e53415d37aa96045 處錢包的代幣餘額,按合約地址列出每個代幣以及十六進制格式的相應餘額。
然而,上一步的輸出(以最小單位列出代幣合約地址和餘額)並不容易理解。要獲取詳細的代幣信息,如名稱、符號和小數位數,用戶應使用 getTokenMetadata 方法。該函數需要合約地址作爲輸入,以結構化格式提供數據。
此外,用戶可以改進腳本以將 getTokenBalances 與 getTokenMetadata 方法集成。例如,他們可以消除零餘額代幣並將代幣餘額轉換爲人類可讀的形式。
使用 Moralis 查找某個地址擁有的所有 ERC-20 代幣的分步指南
Moralis 擁有企業級 Web3 API,有助於將 Web3 集成到任何技術堆棧中。以下是使用 Moralis 查找某個地址擁有的所有 ERC-20 代幣的流程:
第 1 步:設置 Moralis
安裝 Node.js v14+ 和 NPM。將二進制文件解壓到安裝文件夾並設置 Node 的系統環境變量。命令 npm-install 設置 NPM 包及其可能依賴的任何其他包。
創建免費的 Moralis 帳戶,登錄 Moralis 儀表板並獲取 API 密鑰。用戶可以在“設置”>“祕密”中找到它。在這裏,用戶應該找到“Web3 API 密鑰 - 默認”或類似名稱的密鑰,並複製其值以在其項目中使用。
步驟 2:查找某個地址擁有的所有 ERC-20 代幣
Moralis 提供了一個“getWalletTokenBalances”端點來查找某個地址擁有的所有 ERC-20 代幣。它需要兩個參數:地址和鏈。在這種情況下,地址表示正在查詢代幣餘額的特定錢包地址。鏈表示持有這些代幣的特定區塊鏈網絡,例如以太坊。
下面是要使用的 Javascript 代碼:
上面的代碼初始化 Moralis SDK,使用提供的 API 密鑰對其進行設置,然後查詢與指定以太坊錢包地址關聯的所有 ERC-20 代幣餘額,並將結果以 JSON 格式打印到控制檯。
第 3 步:運行腳本
現在,用戶可以運行該腳本並查找令牌的數量。在 JavaScript 中,用戶需要輸入以下命令:
終端將顯示以下 JSON 響應:
上面的 JSON 片段詳細介紹了特定區塊鏈錢包中 ERC-20 代幣的持有情況,其中包含兩種代幣:ApeCoin (APE) 和 Wrapped Ether (WETH)。它包括合約地址、名稱、符號、徽標 URL(如果可用)、小數精度以及錢包內代幣餘額(以每個代幣的最小面額表示)等基本信息。