Query ETH and ERC-20 token balances for Para wallets across different networks.

Prerequisites

You need Web3 libraries configured with Para authentication.

Setup Web3 Libraries

Query ETH Balance

import { ethers } from "ethers";
import { ParaEthersSigner } from "@getpara/ethers-v6-integration@alpha";

async function getETHBalance(signer: ParaEthersSigner, provider: ethers.Provider) {
  const address = await signer.getAddress();
  const balance = await provider.getBalance(address);
  
  const formattedBalance = ethers.formatEther(balance);
  console.log(`ETH Balance: ${formattedBalance} ETH`);
  
  return {
    wei: balance.toString(),
    ether: formattedBalance
  };
}

Query ERC-20 Token Balance

import { ethers } from "ethers";

const ERC20_ABI = [
  "function balanceOf(address owner) view returns (uint256)",
  "function decimals() view returns (uint8)",
  "function symbol() view returns (string)"
];

async function getTokenBalance(
  signer: any,
  tokenAddress: string,
  provider: ethers.Provider
) {
  const contract = new ethers.Contract(tokenAddress, ERC20_ABI, provider);
  const address = await signer.getAddress();
  
  const [balance, decimals, symbol] = await Promise.all([
    contract.balanceOf(address),
    contract.decimals(),
    contract.symbol()
  ]);
  
  const formattedBalance = ethers.formatUnits(balance, decimals);
  console.log(`${symbol} Balance: ${formattedBalance}`);
  
  return {
    raw: balance.toString(),
    formatted: formattedBalance,
    symbol,
    decimals
  };
}

Next Steps