I already had some exposure to Ethereum, so I thought I understood what a blockchain account was.
In my head, it was simple:
A decentralized version of a traditional account; no central authority, no company controlling it. You own it, you control it, end of story.
That mental model worked… until Day 11 of the 100daysofsolana.
What I Thought
I saw accounts like this:
- Wallet = my personal account (stores and sends money)
- Programs = shared logic (like smart contracts)
Even though I knew they were both “accounts,” I still treated them very differently.
Wallet felt like mine. Programs felt like tools.
What Changed
I started inspecting accounts directly using the CLI:
solana account <address>
That’s when things started to feel different.
I wasn’t just seeing balances anymore. I was seeing fields like:
- owner
- executable
- data length And I had questions immediately.
The Confusing Part
Some accounts had:
- executable: true
- others had executable: false
So I started wondering:
Why can some accounts execute and others can’t?
What actually makes a program different from a wallet under the hood?
Then there was data length.
At first, I thought it had something to do with transactions… but it didn’t.
Now I understand it relates to how much storage space an account uses on-chain, but I’m still not fully clear on how it’s managed.
And then there’s rent.
Right now, my understanding is:
a cost for storing data on-chain
But I still didn’t fully understand:
- how it’s calculated
- when it is actually paid
- what happens if an account can’t cover it
What I understand now
The biggest shift for me was this:
A wallet is not just a wallet. It’s an account with structure.
That structure includes:
- who controls it (owner)
- whether it can run code (executable)
- how much data it stores (data length)
What helped things click further is realizing that “owner” doesn’t mean one thing in Solana.
There’s a difference between:
- human ownership - who signs and authorizes transactions with a private key
- program ownership - which program is allowed to modify the account’s data
So a wallet can be controlled by a user through signing, while still being governed at the protocol level by a program.
That separation made the system feel a lot more structured than I expected.
And suddenly, the line between “wallet” and “program” became thinner.
They’re not completely different things. They’re different types of accounts.
Finally
Day 11 didn’t give me full clarity, but it changed the way I look at the system.
I came in thinking in terms of wallets and smart contracts.
I left realizing it’s all just accounts with different rules, permissions, and structure layered on top.
That shift alone made everything I was seeing start to make more sense, even the parts I still don’t fully understand.