📦 Accounts: Solana's Universal Data Container
What Is a Solana Account?
In Solana's architecture, an Account is a chunk of persistent on-chain storage — essentially a record in a global key-value database where the key is a public key (address) and the value is up to 10 megabytes of arbitrary data. Every wallet address is an Account. Every token mint is an Account. Every deployed Program's bytecode is stored in an Account. Even Program state is stored in Accounts — separate from the Program itself.
Every Account has five core fields: lamports (the SOL balance in the smallest unit), data (the raw bytes of stored information, up to 10MB), owner (the Program address that has authority to modify this account's data), executable (a boolean indicating whether the account contains a Program's bytecode), and rent_epoch (a legacy field related to Solana's rent system).
The owner field is particularly important for understanding how Programs and Accounts interact. Only the Program listed as an Account's owner can modify that Account's data. The System Program creates new accounts. The SPL Token Program owns mint accounts and token accounts. The Metaplex program owns metadata accounts. This ownership model is Solana's primary security boundary — a Program cannot modify accounts it doesn't own, which prevents unauthorized data manipulation.
Rent and the Rent-Exempt Threshold
Solana charges rent for storing data on-chain — a small lamport fee per byte per epoch. However, accounts that maintain a balance above the rent-exempt threshold are exempt from ongoing rent charges. The rent-exempt threshold is approximately 2 lamports per byte of data stored. For a typical token mint account (~165 bytes), the rent-exempt deposit is approximately 0.0015 SOL. For a Metaplex metadata account (~679 bytes), it's approximately 0.006 SOL.
These one-time deposits are what you pay when creating your token's accounts through CoinRoot. They're not fees — they're deposits that permanently exist in the account and keep it alive. If you ever close an account (which is possible for some account types), the lamports are returned to you. For mint accounts and metadata accounts, they typically persist indefinitely as part of the token's on-chain identity.
The Four Account Types You Encounter in Token Creation
Wallet Accounts (System Program-owned): Standard Solana wallets — Phantom, Solflare, Backpack. These hold your SOL balance and serve as the authority for signing transactions. Their data field contains no custom information — they're just lamport buckets with a public key.
Mint Accounts (SPL Token Program-owned): The core identity of your SPL token. Contains: current total supply (minted minus burned), decimal precision (0–9), mint authority address (or null if revoked), and freeze authority address (or null if revoked). The mint account's public key IS your token's "contract address" — the unique identifier that distinguishes your token from every other SPL token on Solana.
Associated Token Accounts / ATAs (SPL Token Program-owned): Per-wallet token balance holders. Every Solana address that holds a balance of your token has a dedicated ATA. ATAs are deterministically derived from the holder's wallet address and your token's mint address, so the same ATA address will always correspond to the same wallet + token pair. ATAs cost approximately 0.002 SOL in rent to create — this cost is paid by whoever initiates the first transfer to a new wallet.
Metadata Accounts (Metaplex-owned): Store human-readable token information — name, symbol, logo URI, description, and social links. Linked to your mint account by the Metaplex program. Without a metadata account, wallets display your token as an unknown address with no logo or name. CoinRoot creates metadata accounts automatically, pins your logo to IPFS, and generates the metadata JSON — eliminating the need for manual Metaplex tooling.
- Wallet Account — holds SOL, signs transactions, has no Program-managed data
- Mint Account — stores supply, decimals, mint authority, freeze authority
- ATA — per-wallet token balance, created on first transfer
- Metadata Account — stores name, symbol, logo, description via Metaplex
- All accounts are rent-exempt after a one-time deposit — persist indefinitely
💡
Account costs in practice: When you create a token with CoinRoot, the platform automatically calculates the total rent deposits needed for all accounts and includes them in the transaction. You see the complete cost before approving anything.