const ethers = require('ethers');
// Replace with your Infura or other Ethereum node provider URL
const provider = new ethers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID');
// Replace with the ERC-20 token contract address (e.g., USDT, DAI)
const contractAddress = '0xTokenContractAddress';
// Replace with the wallet address you want to query
const walletAddress = '0xYourEthereumAddress';
// ERC-20 token ABI (just the balanceOf function)
const abi = [
'function balanceOf(address owner) view returns (uint256)'
];
// Create a contract instance
const contract = new ethers.Contract(contractAddress, abi, provider);
async function getTokenBalance() {
try {
// Query the balance
const balance = await contract.balanceOf(walletAddress);
// Convert balance to a human-readable format (tokens usually have 18 decimals)
const formattedBalance = ethers.utils.formatUnits(balance, 18);
console.log(`Token Balance: ${formattedBalance}`);
} catch (error) {
console.error('Error fetching token balance:', error);
}
}
// Call the function to get the token balance
getTokenBalance();
- Contract Address: Replace
'0xTokenContractAddress'
with the address of the ERC-20 token (e.g., USDT, DAI, or any other ERC-20 token). - Wallet Address: Replace
'0xYourEthereumAddress'
with the wallet address whose token balance you want to query. - ABI: We are using a minimal ABI with just the
balanceOf
function, which is all that’s required to query the token balance.