If you've been a Web2 developer for any amount of time, you know what identity
looks like: a username in a database, an email address, a session cookie,
maybe an OAuth token from Google. Your "identity" is really just a record that
some company controls. They can delete it. They can lock you out. They can sell
the data. You don't own it — you just borrow it.
Solana works completely differently. And once you understand how, you can't
unsee it.
It Starts with a Keypair
When I started the 100 Days of Solana challenge, the first thing I did was run:
solana-keygen new --no-bip39-passphrase -o wallet.json
This generated two things:
- A public key — a 32-byte Ed25519 address like
AWKYsCGBcfGLSz6QpmXzRn7EJ9fRhiJsjYSLDV3c9L9y - A private key — stored in
wallet.json, never shared
That's it. That keypair IS my identity on Solana. No signup form. No email
verification. No "username already taken."
The SSH Key Analogy
If you've ever set up a server on AWS or DigitalOcean, you already understand
this model. You generate an SSH keypair, paste the public key into the server's
authorized_keys file, and prove your identity by holding the private key.
Solana works identically — except instead of one server, it's the entire
global network. Every node on Solana knows your public key. You prove ownership
by signing transactions with your private key.
The difference from Web2 is critical: no company stores your credentials.
There is no database row. There is no admin who can reset your password or
lock your account.
What a Solana Address Actually Is
A Solana address is a Base58-encoded 32-byte Ed25519 public key. Base58 was
chosen deliberately — it removes visually confusing characters like 0, O,
I, and l to prevent copy-paste mistakes.
In Web2, your username lives in someone's Postgres table:
SELECT * FROM users WHERE username = 'gopichand';
On Solana, your identity is derived from math. It exists everywhere and nowhere
simultaneously — it only becomes real when you sign something with the private key.
Cryptographic Ownership vs Company-Granted Access
Here's the most important mental shift:
In Web2, you "own" your account because a company says you do. Twitter can
ban you. Your bank can freeze your account. Google can lock your Gmail. You
have access because they allow it.
On Solana, ownership is cryptographic. If you hold the private key, you control
the account — period. No appeal process, no customer support ticket, no
waiting for a human to review your case.
This is both powerful and terrifying. Lose your private key? Your funds are gone
forever. No recovery email. That's why seed phrases and hardware wallets exist.
Identity Enables Everything Else
Once I had a keypair, I could:
- Receive devnet SOL — just by sharing my public key
- Connect a browser wallet — Phantom connected on Day 4 without me ever sharing my private key
- Sign transactions — prove I authorized a transfer without revealing my secret
- Own tokens and NFTs — because ownership is just a signed record on-chain
This one keypair is the foundation for token ownership, dApp interactions,
governance votes, and on-chain reputation — across every application on the
network, without asking anyone's permission.
Which Wallet Type Should You Use?
During Day 5 of the challenge, I compared three wallet types:
| Wallet | Key Storage | Best For |
|---|---|---|
CLI (id.json) |
Plaintext file | Devnet scripting |
| Browser (Phantom) | Encrypted + password | dApp interactions |
| Mobile (Phantom) | Hardware-backed + biometrics | Personal daily use |
| Hardware (Ledger) | Never leaves device | Long-term storage |
The underlying keypair concept is identical across all of them. What differs
is where the private key lives and how it's protected.
The Big Takeaway
In Web2, identity is a database record owned by someone else.
In Web3, identity is a mathematical keypair owned by you.
Your public key is your username, your account number, and your proof of
existence on the network — all at once. The private key is the only password
that matters, and only you should ever hold it.
I'm documenting every step of this journey publicly as part of the
100 Days of Solana
challenge by MLH.
All my code is on GitHub: github.com/gopichandchalla16/100-days-of-solana
Follow along if you're on the same journey! 🚀
Top comments (0)