WDK logoWDK documentation

Check Balances

Query native and ERC-20 token balances on EVM chains.

This guide explains how to check native token and ERC-20 token balances for both owned and read-only accounts.

Owned Account Balances

Use an account retrieved from WalletManagerEvm to query balances.

Native Token Balance

You can retrieve the native token balance from an Account object using account.getBalance():

Get Native Balance
const balance = await account.getBalance()
console.log('Native balance:', balance, 'wei')

Single ERC-20 Token Balance

You can retrieve a single ERC-20 token balance from an Account object using account.getTokenBalance(tokenAddress):

Get ERC-20 Balance
const tokenAddress = '0xdAC17F958D2ee523a2206206994597C13D831ec7' // USDT
const tokenBalance = await account.getTokenBalance(tokenAddress)
console.log('Token balance:', tokenBalance)

Multiple ERC-20 Token Balances

You can retrieve multiple ERC-20 token balances from an Account object using account.getTokenBalances(tokenAddresses), where tokenAddresses is an array of ERC-20 tokens:

Get Multiple Token Balances
const tokenBalances = await account.getTokenBalances([
  '0xdAC17F958D2ee523a2206206994597C13D831ec7', // USDT
  '0x68749665FF8D2d112Fa859AA293F07A622782F38'  // XAUT
])
console.log('Multi-token balances:', tokenBalances)

Read-Only Account Balances

Use WalletAccountReadOnlyEvm to check balances for any public address without a seed phrase.

Native Balance

Read-Only Native Balance
import { WalletAccountReadOnlyEvm } from '@tetherto/wdk-wallet-evm'

const readOnlyAccount = new WalletAccountReadOnlyEvm('0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6', {
   provider: 'https://rpc.mevblocker.io/fast',
})

const balance = await readOnlyAccount.getBalance()
console.log('Native balance:', balance, 'wei')

Single Token Balance

Read-Only Token Balance
const tokenBalance = await readOnlyAccount.getTokenBalance('0xdAC17F958D2ee523a2206206994597C13D831ec7')
console.log('Token balance:', tokenBalance)

Multiple Token Balances

Read-Only Multiple Token Balances
const tokenBalances = await readOnlyAccount.getTokenBalances([
  '0xdAC17F958D2ee523a2206206994597C13D831ec7', // USDT
  '0x68749665FF8D2d112Fa859AA293F07A622782F38'  // XAUT
])
console.log('Multi-token balances:', tokenBalances)

You can also create a read-only account from an existing owned account using await account.toReadOnlyAccount().

Next Steps

With balance checks in place, learn how to send transactions.

On this page