Hook
useTokenBalance
Fetches, aggregates, and refreshes precise SPL token balances for a wallet and mint.
Installation
terminal
$npx shadcn@latest add https://uxdotsol.xyz/r/use-token-balance.jsonUsage
use-token-balance.tsx
"use client"; import { PublicKey } from "@solana/web3.js";import { useConnection, useWallet } from "@solana/wallet-adapter-react";import { useTokenBalance } from "@/hooks/use-token-balance"; const USDC_MINT = new PublicKey( "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",); export function WalletUsdcBalance() { const { connection } = useConnection(); const { publicKey } = useWallet(); const balance = useTokenBalance(publicKey, USDC_MINT, { connection, refreshIntervalMs: 15_000, }); if (!publicKey) return <p>Connect your wallet to view your USDC balance.</p>; return ( <section> <p>Available to spend</p> <strong> {balance.isLoading ? "Loading..." : `${balance.formattedBalance ?? "0"} USDC`} </strong> {balance.error ? ( <button onClick={balance.refetch}>Retry balance check</button> ) : null} </section> );}Options
| Name | Type | Default | Description |
|---|---|---|---|
| publicKey | PublicKey | required | The target wallet address. |
| mint | PublicKey | required | The SPL token mint address. |
| options | TokenBalanceOptions | {} | Solana connection, commitment, and optional refresh interval. |