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

如何通过Ethplorer API查询USDT、SHIB余额并解决104地址格式报错

问题原因与解决方案

报错根因

104地址格式错误是因为Ethplorer的getAddressInfo接口不支持直接传代币符号作为token参数值,该参数要求传入合规的ERC20代币合约地址,你传入的SHIB是代币符号,不符合地址格式要求,所以触发格式校验报错。

前置准备

提前确认以太坊链上对应代币的合约地址:

  • USDT(ERC20)合约地址:0xdAC17F958D2ee523a2206206994597C13D831ec7
  • SHIB(ERC20)合约地址:0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE

修正后的实现方案

提供两种常用实现方式,可根据需求选择:

方式1:单次请求拉取所有代币余额(推荐,减少API调用次数)

一次请求拉取目标地址下所有持有的代币信息,直接过滤出你需要的USDT和SHIB余额即可:

// 请把api_key替换为你自己的Ethplorer API密钥,测试可临时用免费密钥freekey,有调用频率限制
fetch("https://api.ethplorer.io/getAddressInfo/0x27cbc493b894e35f3f34ab273d0d634550af025d?apiKey=api_key")
.then(async (response) => {
  const data = await response.json();
  const tokens = data.tokens || [];
  // 过滤指定代币
  const usdtInfo = tokens.find(item => item.tokenInfo.symbol === 'USDT');
  const shibInfo = tokens.find(item => item.tokenInfo.symbol === 'SHIB');
  // 原始余额除以对应代币精度得到实际显示余额,USDT精度为6,SHIB精度为18
  const usdtBalance = usdtInfo ? usdtInfo.balance / Math.pow(10, 6) : 0;
  const shibBalance = shibInfo ? shibInfo.balance / Math.pow(10, 18) : 0;
  console.log('USDT余额:', usdtBalance);
  console.log('SHIB余额:', shibBalance);
})
.catch( e => console.log('请求错误:', e));

方式2:单独查询指定代币余额

如果需要单独查询某个代币的余额,把token参数替换为对应代币的合约地址即可:

// 单独查询SHIB余额示例
fetch("https://api.ethplorer.io/getAddressInfo/0x27cbc493b894e35f3f34ab273d0d634550af025d?apiKey=api_key&token=0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE")
.then(async (response) => {
  const data = await response.json();
  const shibBalance = data.tokenBalance / Math.pow(10, 18);
  console.log('SHIB余额:', shibBalance);
})
.catch( e => console.log('请求错误:', e));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 06:51:03