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)
Output:
Balance: 2 SOL
Owner: 11111111111111111111111111111111
Executable: false
Length: 0 bytes
Owned by the System Program. Not executable. Zero bytes of custom data. Just a balance.
Inspection 2 — The SPL Token Program
solana account TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Executable: true
Owner: BPFLoader2111111111111111111111111111111111
Data: [compiled program bytecode]
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.
Top comments (0)