admin 发表于 2025-6-30 18:44:45

获取erc20地址所持有的所有币种

获取erc20地址所持有的所有币种

admin 发表于 2025-6-30 18:45:33

要获取一个以太坊地址持有的所有ERC20代币,有几种方法可以实现:方法一:使用区块链浏览器
[*]Etherscan (https://etherscan.io/)

[*]输入地址后,点击"Token"标签页
[*]可以查看该地址持有的所有ERC20代币及其余额
[*]Ethplorer (https://ethplorer.io/)
[*]专门用于查看地址的Token持有情况
[*]提供更详细的代币信息

方法二:使用API
[*]Etherscan APIjavascript



// 获取地址的ERC20代币余额const apiKey = 'YOUR_API_KEY';const address = '0x...';const url = `https://api.etherscan.io/api?module=account&action=tokentx&address=${address}&startblock=0&endblock=99999999&sort=asc&apikey=${apiKey}`;fetch(url).then(response => response.json()).then(data => console.log(data.result));

[*]Alchemy/Infura APIjavascript



const { Alchemy, Network } = require("alchemy-sdk");const config = {apiKey: "YOUR_API_KEY",network: Network.ETH_MAINNET,};const alchemy = new Alchemy(config);async function getTokenBalances(address) {const balances = await alchemy.core.getTokenBalances(address);console.log(balances);}

方法三:使用Web3库查询javascript



const Web3 = require('web3');const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_PROJECT_ID');// ERC20标准ABI(简化版)const erc20Abi = [{    "constant": true,    "inputs": [{"name": "_owner", "type": "address"},    "name": "balanceOf",    "outputs": [{"name": "balance", "type": "uint256"},    "type": "function"};async function getTokenBalance(tokenContract, userAddress) {const contract = new web3.eth.Contract(erc20Abi, tokenContract);const balance = await contract.methods.balanceOf(userAddress).call();return balance;}// 示例:查询USDT余额const usdtAddress = '0xdac17f958d2ee523a2206206994597c13d831ec7';const userAddress = '0x...';getTokenBalance(usdtAddress, userAddress).then(console.log);

页: [1]
查看完整版本: 获取erc20地址所持有的所有币种