Data Account
Pronunciation: DAY-tuh uh-KOWNT
Definition
A data account is a blockchain account used primarily to store program state rather than executable code. It can contain serialized balances, configuration, ownership records, counters, or application-specific information that an on-chain program reads and modifies. The account’s owner program, address derivation, schema, permissions, size, and funding requirements determine how it can be used. A data account is not an ordinary database row and may require explicit creation.
Overview
Data accounts are especially prominent in architectures that separate code from mutable state. On Solana, programs are generally stateless, while data accounts passed to instructions hold the information those programs operate on. The runtime records each account’s address, lamport balance, byte data, owner program, and executable flag. Other blockchains can express similar separation through contract storage, objects, resources, or dedicated state records.
Only the permitted program or authority can make defined changes. On Solana, the owner program controls modification of account data, while transaction signatures and instruction rules determine whether a specific update is authorized. A data account can be created at a normal key-based address or a Derived Account address. Deriving an address does not itself allocate storage; creation, funding, and initialization are separate operations.
Applications must decode the account using the correct schema and version. The same byte sequence can be interpreted differently if a program upgrade changes layout or if the wrong account type is supplied. Secure programs validate owner, expected discriminator, size, writable status, signer requirements, and relationships among accounts. Payment systems should not trust a decoded amount or destination until these checks match the active program.
Data accounts also create operational lifecycle requirements. They may need a minimum balance, resizing, migration, closure, or recovery of unused funds. Teams should record who can initialize, update, and close each account and monitor unexpected ownership changes. A Decoded Transaction can show which accounts an instruction referenced, but the resulting business state must be confirmed by reading the canonical post-execution data account.
Key Takeaway
A data account stores program-controlled state, and safe use depends on validating its owner, schema, authority, creation state, and canonical contents.
Sources
- Solana Accounts — Solana Foundation (2026-08-02)
- Solana Transactions — Solana Foundation (2026-08-02)
- Solana Program Derived Addresses — Solana Foundation (2026-08-02)