如何查找erc20代币余额

问题描述 投票:0回答:4

我正在尝试查找特定地址的ERC20代币(例如Tether)的余额。

其实我希望找到一个像下面这样的API,获取账户地址和合约地址,并返回该特定代币的余额。

以太扫描令牌检查

为了澄清我的目的,在 TRC20 网络中,我使用 这个端点 响应中有一系列 TRC20 代币余额。

ethereum cryptocurrency erc20 etherscan
4个回答
3
投票

ERC-20(以及类似 ERC-20,例如TRC-20BEP-20等)每个地址的代币余额存储在代币的合约中。

Trongrid 使用单独的数据库来汇总 Tron 网络历史上所有

Transfer()
事件(在 ERC-20 标准中定义)的代币余额。 ERC-20 代币可能有类似的第三方服务,但我不知道。例如,Etherscan 确实有相同的信息,但他们只将其显示在地址详细页面上,并且不提供包含此数据的 API。

为了获取某个地址的所有 ERC-20 代币余额,最简单的解决方案(除了找到与 Trongrid 端点执行相同操作的 API 之外)是循环遍历所有代币合约(或者只是您正在使用的代币)感兴趣),并调用他们的

balanceOf(address)
函数。


2
投票

您可以使用一个简单的 Covlanet API 调用来调用它: https://www.covalenthq.com/docs/api/#get-/v1/{chain_id}/address/{address}/balances_v2/

如果想切换到其他网络,只需更改chain_id即可


1
投票

在以太坊中,没有像 Trongrid 这样的内置 API 来检索某些帐户的代币余额。

如果你想这样做,你必须调用智能合约代币的“balanceOf”方法。

Infura API 有一个 eth_call 方法 可以执行此操作。

调用这个API有点棘手,为此我用JS和Go编写了两个代码片段。

JS:https://gist.github.com/arshamalh/33e6646eb793997f2cc69668bd97010a

前往:https://gist.github.com/arshamalh/9fe035f7fe18cb5387737546ef84bf6c


0
投票

Etherscan API 支持“获取地址 ERC20 代币持有”调用,尽管这需要 PRO 订阅。

https://api.etherscan.io/api ?module=account
&action=地址代币余额
&地址=0x983e3660c0bE01991785F80f266A84B911ab59b0 &页=1
&offset=100 &apikey=您的ApiKeyToken

作为一种免费的解决方法,您可以获取某个地址的所有代币交易的列表,并将它们相加以获得当前的代币余额列表。省略合约地址。显然,对于许多交易来说,这个过程会变得很漫长。

https://api.etherscan.io/api ?module=account &action=tokentx
&合约地址=0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2
&地址=0x4e83362442b8d1bec281594cea3050c8eb01311c &页=1
&offset=100 &startblock=0 &endblock=27025780 &sort=asc
&apikey=你的ApiKeyToken

https://docs.etherscan.io/api-endpoints

© www.soinside.com 2019 - 2024. All rights reserved.