Web3 通过钱包地址获取所有代币
Web3 Get All Tokens by Wallet Address
我正在尝试拉取钱包地址持有的代币合约列表,这与 bscscan 的工作方式类似,只是以编程方式进行。 bscscan.com/apis没有端点,web3好像只报告ETH余额。
这是有可能实现的,因为 bscscan 报告了列表并且许多标记跟踪器(例如 farmfol.io)似乎也提取了该信息。我只是没有找到正确的方法。感谢任何帮助!
ERC-20(和类似 ERC-20,例如 TRC-20, BEP-20 等)每个地址的代币余额存储在代币的 合约中 。
区块链浏览器扫描每笔交易以查找 Transfer()
事件,如果发射器是代币合约,他们会更新其单独数据库中的代币余额。每个地址(来自这个单独的数据库)的所有代币余额随后显示为地址详细信息页面上的代币余额。
Etherscan 和 BSCScan 目前不提供 API 每个地址的代币余额 return。
为了获得地址的所有 ERC-20 代币余额,最简单的解决方案(除了找到 API 数据 return 之外)是遍历所有代币合约(或者只是您感兴趣的标记),然后调用它们的 balanceOf(address)
函数。
const tokenAddresses = [
'0x123',
'0x456',
];
const myAddress = '0x789';
for (let tokenAddress of tokenAddresses) {
const contract = new web3.eth.Contract(erc20AbiJson, tokenAddress);
const tokenBalance = await contract.methods.balanceOf(myAddress).call();
}
您可以拨打
https://api.bscscan.com/api?module=account&action=tokentx&address=0x7bb89460599dbf32ee3aa50798bbceae2a5f7f6a&page=1&offset=5&startblock=0&endblock=999999999&sort=asc&apikey=YourApiKeyToken
并解析结果。你接触过的所有代币都会在这里
我正在尝试拉取钱包地址持有的代币合约列表,这与 bscscan 的工作方式类似,只是以编程方式进行。 bscscan.com/apis没有端点,web3好像只报告ETH余额。
这是有可能实现的,因为 bscscan 报告了列表并且许多标记跟踪器(例如 farmfol.io)似乎也提取了该信息。我只是没有找到正确的方法。感谢任何帮助!
ERC-20(和类似 ERC-20,例如 TRC-20, BEP-20 等)每个地址的代币余额存储在代币的 合约中 。
区块链浏览器扫描每笔交易以查找 Transfer()
事件,如果发射器是代币合约,他们会更新其单独数据库中的代币余额。每个地址(来自这个单独的数据库)的所有代币余额随后显示为地址详细信息页面上的代币余额。
Etherscan 和 BSCScan 目前不提供 API 每个地址的代币余额 return。
为了获得地址的所有 ERC-20 代币余额,最简单的解决方案(除了找到 API 数据 return 之外)是遍历所有代币合约(或者只是您感兴趣的标记),然后调用它们的 balanceOf(address)
函数。
const tokenAddresses = [
'0x123',
'0x456',
];
const myAddress = '0x789';
for (let tokenAddress of tokenAddresses) {
const contract = new web3.eth.Contract(erc20AbiJson, tokenAddress);
const tokenBalance = await contract.methods.balanceOf(myAddress).call();
}
您可以拨打
https://api.bscscan.com/api?module=account&action=tokentx&address=0x7bb89460599dbf32ee3aa50798bbceae2a5f7f6a&page=1&offset=5&startblock=0&endblock=999999999&sort=asc&apikey=YourApiKeyToken
并解析结果。你接触过的所有代币都会在这里