in-solana by Supanode

What Is ATA in Solana?

An ATA (Associated Token Account) is a token account whose address is deterministically derived from the owner’s wallet address and the token mint. ATAs eliminate the need to track random token account addresses — given a wallet and a mint, anyone can compute the ATA address.

Address derivation

An ATA is a PDA derived from three seeds:

  1. The owner’s wallet address
  2. The Token Program ID (or Token-2022 ID)
  3. The mint address

This means every wallet has exactly one ATA per mint, and the address is the same regardless of who computes it.

Creating an ATA

ATAs are created by the Associated Token Account Program using the CreateIdempotent instruction. The payer covers the rent-exempt minimum (~0.00204 SOL). Using CreateIdempotent is preferred because it succeeds even if the ATA already exists.

Why ATAs matter

Before ATAs, users had to create token accounts at arbitrary addresses and share those addresses to receive tokens. ATAs standardize this: to send tokens to a wallet, derive its ATA address for that mint and transfer. Wallets, explorers, and DeFi protocols all use ATAs by convention.

FAQ

Can I have multiple token accounts for the same mint? Yes. ATAs are a convention, not a requirement. You can create additional token accounts at non-ATA addresses, but wallets may not display them by default.

Who pays for ATA creation? Any account can pay. In practice, the sender often creates the recipient’s ATA and pays the rent if it doesn’t exist yet.

Can I close an ATA? Yes. If the balance is zero, you can close it and recover the ~0.00204 SOL rent to a destination wallet.

Updated: