Diving Deeper into Web3 & Solana — And It’s Finally Clicking
When I first started exploring Web3 and Solana, it felt overwhelming. New terminology. Strange account models. Programs instead of contracts. And everything se...

When I first started exploring Web3 and Solana, it felt overwhelming.
New terminology. Strange account models. Programs instead of contracts. And everything seemed to behave differently from traditional Web2 systems.
But recently, something shifted.
It’s finally clicking.
Here’s what changed.
1️⃣ Learning the Jargon (The Real First Barrier)
Web3 isn’t hard because it’s “complex.”
It’s hard because the vocabulary is unfamiliar.
Terms like:
- Mint account
- Associated token account
- Program-derived address (PDA)
- Rent exemption
- Lamports
At first, they sound abstract.
But once you realize Web3 is just a state machine with strict ownership rules, the jargon becomes logical.
On Solana:
- Everything is an account
- Every account has an owner
- Programs define how accounts can change
Once you internalize that, things start making sense.
2️⃣ Understanding Types of Accounts on Solana
Solana doesn’t work like Ethereum.
There are no “smart contracts that hold storage internally.”
Instead, storage is separate from execution.
Here are the main account types that matter:
🔹 System Account
Press enter or click to view image in full size
Press enter or click to view image in full size
4
This is your basic wallet account.
- Stores SOL (in lamports)
- Owned by the System Program
- Can transfer SOL
- Can create new accounts
When you generate a wallet, you’re creating a system account.
Simple.
🔹 Token Mint Account
Press enter or click to view image in full size
Press enter or click to view image in full size
4
A mint account defines a token.
It contains:
- Total supply
- Mint authority
- Freeze authority
- Decimals
For example:
- USDC on Solana has its own mint account.
- USDT has another.
The mint does NOT store balances.
It only defines the token.
That was a major “aha” moment.
🔹 Token Account
Press enter or click to view image in full size
4
This is where balances live.
If you hold USDC:
- Your system account does NOT store USDC.
- A separate token account stores it.
Each token account:
- Is tied to a specific mint
- Has an owner
- Stores token balance
One wallet → multiple token accounts.
Now it starts looking like a database schema.
3️⃣ The System Program
The System Program is the default program that:
- Creates accounts
- Transfers SOL
- Assigns ownership
If an account’s owner is the System Program, it behaves like a standard wallet account.
This program is foundational — everything builds on top of it.
4️⃣ The Token Program (SPL Token Program)
Press enter or click to view image in full size
Press enter or click to view image in full size
4
The Token Program defines the rules for tokens.
It handles:
- Minting
- Burning
- Transferring tokens
- Freezing accounts
Important insight:
The Token Program doesn’t store balances either.
It enforces rules on token accounts that it owns.
That ownership model is everything.
If a program owns an account, it controls its state transitions.
That’s the mental shift from Web2 → Web3.
5️⃣ Associated Token Account Program
Press enter or click to view image in full size
4
This solved a major UX problem.
Without it:
- Anyone could create random token accounts for you.
- Wallets wouldn’t know which one to use.
The Associated Token Account (ATA) Program:
- Derives a deterministic token account address
- Links wallet + mint
- Ensures one canonical token account per wallet per token
That’s why when you receive USDC for the first time,
an ATA gets created automatically.
Clean.
Predictable.
Deterministic.
The Real Click Moment
The breakthrough came when I stopped thinking:
“Where is my USDC stored?”
And started thinking:
“Which account owns the token account that holds my USDC?”
Ownership is the core primitive.
On Solana:
- Programs own accounts
- Accounts store state
- Transactions modify state through programs
That’s it.
No magic.
Just controlled state transitions.
Why This Matters
If you’re building in Web3:
- You must understand account ownership
- You must understand how token balances are stored
- You must understand program authority
- Otherwise, you’re just copying code without mental models.
And that doesn’t scale.
If you’re diving into Solana right now, keep going.
The confusion phase is temporary.
The click is permanent.
And once it clicks — you start seeing everything as structured state.
That’s when real building begins.