探索以太坊资产:如何查询钱包内所有 ERC-20 代币

在区块链世界中,查看自己钱包中的 ERC-20 代币余额相对简单——只需打开钱包应用,就能看到所有导入代币的余额信息。然而,当我们需要查询他人地址持有的代币时,问题就变得复杂了,尤其是在没有直接访问对方钱包权限的情况下。

对于个人投资者、企业分析师或区块链研究人员来说,快速获取特定地址的代币持仓数据是一项重要能力。幸运的是,现代区块链基础设施提供了多种 API 解决方案,让我们能够高效查询任何以太坊地址的 ERC-20 代币持仓情况。

本文将详细介绍三种主流 API 服务——Chainbase、Alchemy 和 Moralis,它们各自提供了查询特定地址 ERC-20 代币的专业解决方案。我们将以开发者友好的方式,展示如何通过这些工具实现资产查询功能。

Chainbase: 区块链数据查询的高效之选

Chainbase 是一款强大的 Web3 区块链交互层基础设施,其 API 服务能帮助开发者快速访问和利用区块链数据。通过简单步骤,我们就能查询任意地址的代币持仓情况。

账户设置与准备工作

  1. 创建账户与获取 API 密钥

    • 访问 Chainbase 官网注册免费账户
    • 登录后进入控制台,创建新项目
    • 获取并保存 API 密钥,这是后续查询的必要凭证
  2. 开发环境准备

    • 确保您的开发环境已安装 Node.js
    • 使用 npm 安装 Axios 库:npm install axios --save

实现查询功能

使用 JavaScript 与 Chainbase API 交互,获取指定地址的 ERC-20 代币余额:

javascript const axios = require('axios');

async function getERC20Tokens() { try { const response = await axios.get( ' { params: { chain_id: '1', // 以太坊主网 address: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045', // 示例地址 limit: 5 // 返回前5个代币 }, headers: { 'x-api-key': '您的API密钥' // 替换为您的实际密钥 } } ); console.log(JSON.stringify(response.data, null, 2)); } catch (error) { console.error('查询失败:', error); } }

getERC20Tokens();

查看查询结果

运行脚本后,您将看到类似下方的 JSON 响应,显示指定地址持有的 ERC-20 代币详情:

{ "data": [ { "chain_id": "1", "address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", "contract_address": "0xc00e94cb662c3520282e6f5717214004a7f26888", "name": "Compound", "symbol": "COMP", "decimals": 18, "balance": "10472650474472796", "balance_in_usd": 0.71 }, ...更多代币信息... ] }

响应数据包含每个代币的合约地址、名称、符号、小数位数、余额及美元价值等关键信息。

Alchemy: 专业的区块链开发平台

Alchemy 是区块链开发领域的领先平台,提供强大的 API 工具来读取和写入区块链数据。以下是通过 Alchemy 查询 ERC-20 代币余额的详细步骤:

环境准备与账户设置

  1. 安装必要工具

    • 安装 Node.js 和 NPM
    • 创建项目文件夹并初始化环境
  2. 获取 Alchemy 访问凭证

    • 注册 Alchemy 账户
    • 创建新应用,选择以太坊主网
    • 保存应用的 HTTP URL 和 API 密钥

项目设置与开发

创建项目结构并安装依赖:

bash mkdir eth-balance cd eth-balance npm init -y npm install alchemy-sdk touch main.js

在 main.js 文件中编写查询代码:

javascript const { Alchemy, Network } = require("alchemy-sdk");

// 配置访问参数 const config = { apiKey: "您的API密钥", network: Network.ETH_MAINNET };

const alchemy = new Alchemy(config); const address = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045";

// 获取代币余额 async function getTokenBalances() { const balances = await alchemy.core.getTokenBalances(address); console.log("代币余额数据:"); console.log(balances);

// 处理非零余额的代币 const nonZeroBalances = balances.tokenBalances.filter(token => { return token.tokenBalance !== "0"; });

console.log(该地址持有 ${nonZeroBalances.length} 种非零余额的ERC-20代币);

// 获取更详细的代币信息 for (let token of nonZeroBalances) { const metadata = await alchemy.core.getTokenMetadata(token.contractAddress); console.log(代币: ${metadata.name}); console.log(符号: ${metadata.symbol}); console.log(余额: ${token.tokenBalance / Math.pow(10, metadata.decimals)}); console.log("-----"); } }

getTokenBalances();

运行查询与结果分析

执行脚本查看结果:

bash node main.js

查询结果将展示详细的代币信息,包括:

  • 代币名称和符号
  • 合约地址
  • 格式化后的余额数量
  • 代币元数据(如小数位数)

Alchemy 的优势在于它不仅提供了基础的余额查询,还支持元数据获取、代币过滤和余额格式化等高级功能,让开发者能轻松构建完整的资产管理功能。

Moralis: 企业级 Web3 API 服务

Moralis 提供了功能全面的 Web3 API 工具集,帮助开发者轻松实现区块链功能集成。使用 Moralis 查询 ERC-20 代币余额的步骤如下:

前期准备工作

  1. 环境配置

    • 安装 Node.js v14+ 和 NPM
    • 设置系统环境变量
  2. 获取 API 密钥

    • 创建 Moralis 账户
    • 登录后在"设置">"秘密"中找到"Web3 API 密钥"
    • 复制密钥备用

代码实现

创建一个新的 JavaScript 文件,编写以下代码:

javascript const Moralis = require("moralis").default;

// 初始化 Moralis async function initMoralis() { await Moralis.start({ apiKey: "您的API密钥" }); }

// 查询钱包中的代币 async function fetchWalletTokens() { await initMoralis();

try { const address = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045";

const response = await Moralis.EvmApi.token.getWalletTokenBalances({
  address: address,
  chain: "0x1" // 以太坊主网
});

console.log(JSON.stringify(response.toJSON(), null, 2));

} catch (e) { console.error(e); } }

fetchWalletTokens();

执行查询与结果解析

运行脚本获取结果:

bash node moralis-tokens.js

查询结果示例:

json [ { "token_address": "0x4d224452801aced8b2f0aebe155379bb5d594381", "name": "ApeCoin", "symbol": "APE", "logo": "", "thumbnail": "", "decimals": 18, "balance": "5000000000000000000" }, { "token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "name": "Wrapped Ether", "symbol": "WETH", "logo": null, "thumbnail": null, "decimals": 18, "balance": "7050000000000000000" } ]

Moralis API 的响应提供了完整的代币信息,包括名称、符号、合约地址、徽标URL以及按照代币最小单位表示的余额。这些数据可以直接用于开发资产管理应用、投资组合分析工具或区块链数据可视化系统。

API 服务功能对比

| 功能特性 | Chainbase | Alchemy | Moralis | |---------|----------|---------|---------| | 免费额度 | 有限请求次数 | 有免费套餐 | 有免费层级 | | 查询速度 | 快速 | 极快 | 快速 | | 代币元数据 | 支持 | 详细支持 | 全面支持 | | 历史数据 | 部分支持 | 支持 | 支持 | | 易用性 | 较高 | 中等 | 高 | | 适用场景 | 基础查询 | 专业开发 | 企业应用 |

通过这三种 API 服务,开发者和研究人员可以轻松获取任何以太坊地址的 ERC-20 代币持仓信息,为资产分析、交易监控、税务计算等应用场景提供可靠的数据支持。根据具体需求和技术偏好,选择最适合的工具将有助于提升开发效率和用户体验。

这些工具不仅方便开发者构建应用,也为投资者提供了重要的资产透明度,帮助他们更好地了解区块链世界中的资产分布情况。无论是出于研究目的还是实际应用需求,掌握这些 API 的使用方法都将为您的区块链之旅增添一份便利。

ETH-0.98%
COMP-1.4%
APE1.95%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
  • 置顶
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)