Skip to main content
Query SOL and SPL token balances for Para wallets using Solana libraries. This guide covers checking native SOL balances and SPL token balances.

Setup Solana Libraries First

  • @solana/web3.js
  • @solana/web3.js-v2
  • Anchor
import { useParaSolana } from './hooks/useParaSolana';
import { LAMPORTS_PER_SOL, PublicKey } from '@solana/web3.js';
import { TOKEN_PROGRAM_ID, getAccount, getAssociatedTokenAddress } from '@solana/spl-token';

function WalletBalance() {
  const { connection, signer } = useParaSolana();
  const [solBalance, setSolBalance] = useState(0);
  const [tokenBalance, setTokenBalance] = useState(0);
  
  const fetchBalances = async () => {
    try {
      // Get SOL balance
      const balance = await connection.getBalance(signer.sender);
      setSolBalance(balance / LAMPORTS_PER_SOL);
      
      // Get SPL token balance (example: USDC)
      const usdcMint = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
      const tokenAccount = await getAssociatedTokenAddress(
        usdcMint,
        signer.sender
      );
      
      try {
        const accountInfo = await getAccount(connection, tokenAccount);
        setTokenBalance(Number(accountInfo.amount) / 1e6); // USDC has 6 decimals
      } catch (error) {
        console.log("Token account not found");
        setTokenBalance(0);
      }
    } catch (error) {
      console.error("Error fetching balances:", error);
    }
  };
  
  return (
    <div>
      <button onClick={fetchBalances}>Refresh Balances</button>
      <p>SOL Balance: {solBalance}</p>
      <p>USDC Balance: {tokenBalance}</p>
    </div>
  );
}

Next Steps

I