Why Web3 needs wallets — identity without a server
Why a faucet asks for an address, why an address requires a wallet, and why a wallet is not a bank account. The rubber stamp vs library card mental model.
Here is the exact thought process every new Web3 developer has in their first 10 minutes:
"Okay, I want to deploy a contract. I need some Sepolia ETH first. Let me go to the faucet."
I visited the faucet website. It asked me for my wallet address.
I stared at the screen.
"What is a wallet address? Do I make a username? Do I create an account? Where do I sign up?"
I had no idea what this meant. I assumed there was a "Create Account" button somewhere. There wasn't. The faucet was just waiting. Blank text field. Blinking cursor. No instructions.
1. The Story: The Blank Text Field
I had been a full-stack Web2 developer for two years. I knew how authentication worked: you give a server your email and password, the server stores a record, issues you a session token, and from that point on it "remembers" you.
So when the faucet asked for my "wallet address", I assumed I had to register somewhere first. I opened three more tabs looking for the sign-up page. I tried Googling "how to create Ethereum wallet address". I found MetaMask.
Then MetaMask asked me to write down 12 random words on paper and store them safely.
"Why is this app asking me to store random words on physical paper? Is this a scam?"
I almost closed the tab. I'm glad I didn't. Because what was happening was something fundamentally different from anything Web2 had prepared me for.
2. The Metaphor: The Rubber Stamp vs The Library Card
In Web2, your identity is like a library card. You go to the library (the server), register in person, the librarian creates a record for you, prints you a card, and remembers your name in their system. Your identity is granted by the institution.
In Web3, your identity is like a rubber stamp with a unique pattern. You carve the stamp yourself, in your own house, with no librarian involved. The stamp itself is your identity. No institution issued it. No server remembers it. Anyone you stamp a document with can verify the stamp is genuine — but only you own the actual rubber block.
That rubber stamp is your private key. The ink pattern it leaves is your public address.
3. The Visual Diagram: Identity Without a Server

[!TIP] VISUAL TRIGGER FOR FRONTEND: Animate this as two parallel identity flows side by side. In the Web2 path, highlight the server as a central dependency node. In the Web3 path, show the keypair generating locally with no external connection — then the address broadcasting outward to the chain.
4. Technical Explanation: What an Address Actually Is
A wallet address like 0x71C7656EC7ab88b098defB751B7401B5f6d8976F is not a username you chose. It is not assigned by a server. It is the mathematical output of a cryptographic process:
- Generate a private key: A random 256-bit number. Example:
0xf8f8a2f43c8376ccb0871305060d7b27b0554d2cc72bccf41b2705608452f315 - Derive a public key: Apply ECDSA (Elliptic Curve Digital Signature Algorithm) to the private key to generate a public key.
- Hash the public key: Apply Keccak-256 to the public key and take the last 20 bytes.
- That output IS your address:
0x71C7656EC7ab88b098defB751B7401B5f6d8976F
This entire process happens locally on your device. No internet connection required. No API call. No server registration. You mathematically prove ownership of an address by demonstrating that you control the private key that was used to derive it.
5. Why the Faucet Needs Your Address (Not Your Email)
Now the faucet makes complete sense:
- The faucet cannot send Sepolia ETH to "your Google account" — Google accounts don't exist on the blockchain.
- The faucet cannot send it to "your username" — there are no usernames on the blockchain.
- The blockchain only understands addresses — 20-byte hexadecimal coordinates derived from cryptographic keys.
When you paste your address 0x71C...397 into the faucet, you're telling it: "Send test funds to this coordinate on the Sepolia ledger." The faucet broadcasts a transaction, the validators process it, and 0.5 Sepolia ETH appears at that coordinate.
You prove you own that coordinate by having the private key that generated it — stored safely inside MetaMask.
In Web2, if you forget your password, the server resets it. The institution owns your identity. In Web3, if you lose your private key (or your 12-word seed phrase), your identity — and everything associated with it — is permanently inaccessible. No recovery email. No support ticket. No override. This is why the 12 random words MetaMask asks you to write down are not a scam. They are the only backup of your entire cryptographic identity.
Open MetaMask (or use the Remix in-browser wallet). Look at your wallet address — the 42-character hex string starting with 0x. Now look at your private key (Settings → Security → Reveal Private Key). Notice that the address is publicly shareable, while the private key must never leave your control. Can you articulate why these two strings are mathematically related but one is safe to share and the other is not?
Was this lesson helpful?
Let us know what you think of this specification. (submitting anonymously)
