DEV Community

Samuel Akoji
Samuel Akoji

Posted on

Inspecting Raw Account Data with the Solana CLI

Day 22 of #100DaysOfSolana

Today I went under the hood. No code just the Solana CLI and three account inspections that changed how I see the whole network.

Inspection 1 — My own wallet

solana account $(solana address)
Enter fullscreen mode Exit fullscreen mode

Output:

Balance: 2 SOL
Owner: 11111111111111111111111111111111
Executable: false
Length: 0 bytes
Enter fullscreen mode Exit fullscreen mode

Owned by the System Program. Not executable. Zero bytes of custom data. Just a balance.


Inspection 2 — The SPL Token Program

solana account TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Enter fullscreen mode Exit fullscreen mode
Executable: true
Owner: BPFLoader2111111111111111111111111111111111
Data: [compiled program bytecode]
Enter fullscreen mode Exit fullscreen mode

Same five fields — completely different values. This is a runnable program, loaded by the BPF Loader, with actual bytecode in the data field.

A native built-in program. The only one on Solana that can create new accounts. Compare its fields to both above and the pattern becomes clear.

The five fields every account shares

Field What it means
lamports SOL balance in the smallest unit
data Arbitrary byte array (empty for wallets)
owner The program that controls this account
executable Is this account runnable code?
rentEpoch Legacy field, no longer actively used

The key insight

On Solana, everything is an account. Wallets, programs, token balances, NFT metadata, game state — all accounts, all with the same five fields.

The difference between a wallet and a smart contract is:

  • One boolean: executable
  • One address: what sits in owner

This is different from Ethereum, where wallets and contracts are distinct concepts. On Solana, it's accounts all the way down.


The owner field is the security model

Only the owning program can modify an account's data or deduct its lamports. That's why:

  • The System Program handles SOL transfers → it owns wallets
  • The Token Program moves tokens → it owns token accounts
  • Your custom program controls its state → it will own the accounts it creates

Understanding this is foundational for everything that comes next.

Same fields, machine-readable. Useful for scripting or piping into other tools.

Day 22 down.

solana #web3 #blockchain #100daysofsolana

Top comments (0)