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():
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):
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
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
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.