Definition
P2WPKH (Pay to Witness Public Key Hash) is the native Segregated Witness equivalent of a legacy P2PKH output, introduced with the 2017 SegWit upgrade. Its addresses are encoded in Bech32 rather than Base58Check, always begin with bc1q on mainnet, and are exactly 42 characters long. P2WPKH is the workhorse single-signature output type for most modern wallets — when someone says "a native SegWit address," this is almost always what they mean.
How it differs from legacy
The scriptPubKey is minimal: a witness version byte OP_0 followed by the 20-byte hash of the public key. The signature and compressed public key needed to spend it live in the transaction's witness field instead of the scriptSig. That relocation is the whole trick: witness data is priced at a discount under the block-weight rules, so spending a P2WPKH output consumes fewer virtual bytes — and therefore less fee — than spending the legacy equivalent, while the actual cryptography (an ECDSA signature over a hash of the transaction) is unchanged. One tightening worth knowing: uncompressed public keys, tolerated in legacy P2PKH, are non-standard in witness programs, closing off a legacy source of bloat and edge cases.
Practical implications
Native SegWit also fixed third-party transaction malleability — no outsider can tamper with a transaction's ID by mutating signature encodings, because the txid no longer covers witness data. Reliable, unchangeable txids for unconfirmed transactions were the prerequisite that made payment channels safe and thus the Lightning Network practical; the plumbing upgrade enabled the skyscraper. For operators batching withdrawals or consolidating UTXOs — a miner sweeping months of pool payouts, say — the per-input fee saving compounds across every spend, so choosing P2WPKH (or newer) outputs meaningfully trims lifetime fee overhead. Consolidate during low-fee periods and the discount works hardest for you.
Compatibility and the address family
Bech32's character set is friendlier than Base58's — case-insensitive, no ambiguous characters, and a checksum that reliably detects typos rather than merely usually catching them. Ancient wallets that cannot parse Bech32 can still pay you via the backward-compatible wrapper, Nested SegWit (P2SH-P2WPKH), at a small fee penalty; by now, though, native support is near-universal, and bc1q addresses are the sensible default for single-signature use. In the family tree, P2WPKH is witness version 0 alongside its script sibling P2WSH, with witness version 1 — Taproot's bc1p addresses and Schnorr signatures — as the next generation.
For a sovereign user, the takeaway is simple: verify your wallet is producing bc1q (or bc1p) receive addresses, prefer them for change, and let the weight discount quietly reduce every transaction you will ever make. The encoding is detailed under Bech32, and the upgrade that created all of this is covered at SegWit.
In Simple Terms
P2WPKH (Pay to Witness Public Key Hash) is the native Segregated Witness equivalent of a legacy P2PKH output, introduced with the 2017 SegWit upgrade. Its…
