WDK logoWDK documentation

Check Balances

Query SOL and SPL token balances on Solana.

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

Owned Account Balances

Use an account retrieved from WalletManagerSolana to query balances.

Native SOL Balance

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

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

SPL Token Balance

You can retrieve an SPL token balance from an Account object using account.getTokenBalance(tokenMint):

Get SPL Token Balance
const splTokenAddress = 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB' // USDT mint address
const splTokenBalance = await account.getTokenBalance(splTokenAddress)
console.log('SPL token balance:', splTokenBalance)

Token balances are returned in the token's smallest units. Adjust for the token's decimals when displaying (e.g., USD₮ has 6 decimals).

Read-Only Account Balances

Use WalletAccountReadOnlySolana to check balances for any public key without a seed phrase.

Native Balance

Read-Only SOL Balance
import { WalletAccountReadOnlySolana } from '@tetherto/wdk-wallet-solana'

const readOnlyAccount = new WalletAccountReadOnlySolana('publicKey', {
  rpcUrl: 'https://api.mainnet-beta.solana.com',
  commitment: 'confirmed'
})

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

Token Balance

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

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 SOL.

On this page