Token Account
Holds a balance of one specific token for one specific owner. Associated Token Accounts (ATAs) are the standard derivation of this account.
Sample: Jupiter USDC
(cached; refreshes hourly · mainnet only)
A Token Account holds one wallet's balance of one specific token. Every SPL token balance lives in its own 165-byte account.
SPL Token deliberately separates mint metadata (the Mint account) from individual balances (Token Accounts). The same token — say USDC — exists as exactly one Mint and millions of Token Accounts, one per holder. Most wallets use Associated Token Accounts (ATAs): given a wallet pubkey and a mint, the ATA address is the deterministic PDA derived from the pair, so any tool can compute it without on-chain lookup.
You encounter Token Accounts every time a wallet holds an SPL token — in wallet UIs, transfer instructions, DEX swap routes, and balance lookups. An "account not found" on a transfer usually means the recipient's ATA hasn't been created yet.
The 165-byte layout: mint (which token, 32 bytes), owner (which wallet, 32 bytes), amount (balance in atomic units, 8 bytes), delegate (optional approved spender, 36 bytes with the Option tag), state (1 byte: Uninitialized, Initialized, or Frozen), is_native (whether this is wrapped SOL, 12 bytes including the Option), delegated_amount, and close_authority. Frozen accounts can still receive tokens but can't send them — used by issuers like Circle for compliance.