Legacy P2PKH
Universally accepted, and the most expensive to spend.
Some start with 1, some with 3, some with bc1q and some with bc1p. They are not cosmetic variants — they commit to different spending rules, cost different amounts to use, and are not equally supported.
Open two wallets and you may well be given two addresses that look nothing alike. One begins with a 1, another with bc1q, a third with bc1p. Nothing is broken and neither wallet is wrong — but the differences are not cosmetic, and one of them will quietly cost you money every time you spend.
An address is not an account and not a location. It is a compact, human-transmissible encoding of the conditions under which these coins may later be spent. Different prefixes encode different kinds of condition.
Bitcoin has added address formats over time, always without removing the old ones. All four remain valid and spendable today.
Universally accepted, and the most expensive to spend.
Multisig, and SegWit wrapped for compatibility.
The common default. Cheaper to spend and error-detecting.
Cheapest for simple spends, and hides complex conditions.
A wallet that hands you a bc1q address is not a different kind of wallet from one handing you a 1 address. Very often it is the same seed, on the same device, walking a different branch of the same tree — which is precisely the mechanism described in how a wallet finds your coins.
Each format solved a real problem rather than being a redesign for its own sake.
Originally, an address committed to a single public key. That made anything more sophisticated — multisig especially — awkward, because the sender had to be handed the whole complicated condition and pay for its size. P2SH inverted it: the address commits to a hash of the conditions, the sender pays for a short address regardless of complexity, and the spender reveals the full detail later. Addresses starting with 3 are the result, and it is why receiving into a multisig looks no different from any other payment.
SegWit restructured transactions so signature data sits in a separate section, discounted when a block's size is measured. Two consequences follow: spending a SegWit output costs meaningfully less in fees, and transaction IDs stopped being malleable — a fix that Lightning depends on. Native SegWit uses bech32 encoding, which is why bc1q addresses are lowercase and slightly longer, and why they carry a checksum strong enough to catch typos rather than merely usually catching them.
Taproot goes further: a simple single-key spend and an elaborate multi-condition contract can look identical on-chain. If the straightforward path is taken, that is all anyone ever sees; the unused alternatives are never published. It also brought Schnorr signatures, which make the common case cheaper still.
That privacy property is not incidental — it is the whole point, and it is why complex spending conditions became practical to use without advertising to the world that you have them.
Four keys of visibly different ages laid in a row on dark cloth — an ornate old brass one through to a flat modern electronic fob — all clearly keys, all clearly for different locks.
Image to come
Fees are charged by transaction size, not by amount sent. Address type is one of the largest influences on that size — and specifically on the size of your inputs, meaning the coins you are spending.
Approximate input sizes, which is what you pay for when spending:
Spending a single coin, the difference is small change. Consolidating twenty small legacy inputs versus twenty Taproot ones is roughly 1,800 vbytes of difference — a real sum during a busy fee period, and the reason fees and address types are the same conversation.
The size penalty lands when coins are spent, not when they arrive — and it is paid by whoever spends them. Being handed a legacy address by a service costs you nothing today and costs you later, when those coins move. It is a reason to prefer modern formats for your own receiving, not a reason to refuse a payment.
Adoption lags activation by years, because every service has to update its own software.
Bech32 addresses are case-insensitive, so bc1q… and BC1Q… are the same address. They are conventionally shown in lowercase, and a QR code of one may be uppercase purely because that encodes more compactly. Neither is a sign of anything wrong.
Four formats, all valid, all spendable, differing in what they commit to and what they cost to spend. Newer ones are cheaper and better at hiding complexity; older ones are more widely accepted. Your wallet's default is almost certainly the right answer, and the format you use matters considerably less than not reusing whichever one you chose.
The prefix is a statement about spending rules, not a brand. It travels with the coins, it sets what they cost to move, and it is one of the fields a future restore needs to get right — so it is worth writing down, and worth not thinking about much beyond that.