查找任何给定钱包中的 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 的地址作为示例)的前五个 ERC-20 代币余额,并显示结果或遇到的任何错误。
虽然原生 Fetch API 是使用 JavaScript 执行 HTTP 请求的常用方法,但在示例代码中,“获取”在概念上是由 Axios 完成的,而不是由原生 Fetch API 完成的。要使用 Axios,用户必须在终端中使用“npm install axios --save”进行安装。
上述代码使用 JavaScript 中的 Axios 向 Chainbase 查询以太坊主网上 Vitalik Buterin 钱包的前五个 ERC-20 代币余额。
步骤 3:打印代币余额
Chainbase 的getAccountTokens API使用链 ID 和钱包地址作为参数,返回钱包拥有的所有 ERC-20 代币余额。用户还可以通过填充“contract_address ”字段来查找有关特定代币的信息。要打印数据,用户必须运行命令“node
上述代码片段显示了给定钱包中的几种 ERC-20 代币的余额和信息,包括 Eterium、Uniswap V2、dYdX 等。
使用 Alchemy 查找某个地址拥有的所有 ERC-20 代币的分步指南
Alchemy 提供作为平台层的 API,读取或写入区块链并提供开发人员所需的精确信息。以下是通过 Alchemy 获取代币余额的过程:
步骤 1:安装 Node 和 NPM
在本地机器上安装 Node 和 Node 包管理器 (NPM)。Node 是一个跨平台的开源 JavaScript 运行时环境,而 NPM 则提供对庞大的库和工具生态系统的访问。
第 2 步:注册 Alchemy 帐户并创建应用程序
在 Alchemy 网站上,注册一个免费账户。然后,登录并导航到“Alchemy 仪表板”以创建新应用程序。将区块链设置为“以太坊”,将网络设置为“主网”。单击仪表板上应用程序的“查看密钥”按钮,并记下 HTTP URL 和 API 密钥。
URL 将采用以下格式:https://eth-mainnet.g.alchemy.com/v2/xxxxxxxxx
步骤 3:创建 Node 项目
下一步涉及初始化一个空存储库并安装所需的 Node.js 依赖项。对于 API 交互,特别是与令牌 API 的交互,用户需要使用Alchemy 软件开发工具包 (SDK),尽管 Axios 或 Fetch 可以作为合适的替代方案。
Axios 是一个 Javascript 库,用于从节点发出 HTTP 请求。Fetch API 是 Node 中的一个内置模块,有助于发出 API 请求并处理服务器上的响应。Alchemy SDK 是一个程序函数库,支持访问底层数据模型和技术。
代码如下:
代码会创建一个仓库“eth-balance”,里面保存着所有的文件和依赖项,代码会写在“main.js”文件中。
步骤 4:获取地址的代币余额
要检索代币余额,用户可以使用 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和 Wrapped Ether (WETH)。它包括基本信息,例如合约地址、名称、符号、徽标 URL(如果可用)、小数精度以及钱包内代币的余额(以每种代币的最小面额表示)。