On 20 April 2024, block 840,000 mined the fourth Bitcoin halving and something stranger: the average fee per transaction reached roughly $127.97, and the miner collected close to $2.4 million in fees on that single block as the Runes protocol launched in the same block. Two years later, on a quiet weekday, you can broadcast a transaction at 1 sat/vB and expect confirmation within a few blocks. Same network, same 10-minute target, same 4 MWU cap — and a fee market that swings four orders of magnitude.
That swing is the point. Bitcoin fees are not a service charge set by a company. They are the clearing price of an auction for a fixed amount of block space, held roughly every ten minutes, with every pending transaction bidding against every other. Understanding how that auction works — the units it measures, the discounts it applies, and the knobs you can turn — is the difference between paying $0.30 and $30 for the same economic outcome.
Block space is the scarce good
Every Bitcoin block is capped at 4,000,000 weight units (WU), often written as 4 MWU. Weight units are the replacement for the old 1 MB byte limit introduced with SegWit in August 2017. The rule is straightforward: non-witness data costs 4 WU per byte, witness data costs 1 WU per byte. Divide weight by four and you get virtual bytes (vBytes) — the unit wallets and explorers quote when they show you a fee rate in sats/vB.
In practice that means the effective capacity is somewhere between 1 MB (if a block were entirely legacy data) and 4 MB (if it were entirely witness data). Real blocks fall in the middle, usually landing around 1.5–2 MB on disk for roughly 1,000,000 vBytes of billable space. Miners select transactions to maximise fees per weight unit, so what you are actually bidding is sats per vByte, and the marginal transaction that just barely makes it into a block sets the floor price for that block.
If you want the deeper picture of what a transaction actually is at the protocol level, Part 2 of this series on the UTXO model walks through inputs, outputs, and why a transaction with many small inputs costs more than one with a single large input.
The witness discount and why address type matters
The witness discount is the single most important lever most users never touch. Signatures — the cryptographic proof that you own the coins you are spending — are the bulkiest part of a typical transaction. By moving them into a separate witness field that counts at 1 WU per byte instead of 4 WU, SegWit cut the effective size of a standard spend by roughly 30–40%. Taproot, activated at block 709,632 in November 2021, kept the discount and added Schnorr signatures plus a cleaner script path, shaving a little more off multisig and advanced spends.
That discount only applies if your address type supports it. You can recognise the tiers at a glance:
1...— legacy P2PKH, pre-SegWit, no discount. The most expensive to spend.3...— P2SH, often wrapping SegWit (P2SH-P2WPKH). Partial discount, backwards-compatible with older senders.bc1q...— native SegWit (bech32, P2WPKH or P2WSH). Full witness discount.bc1p...— Taproot (bech32m, P2TR). Full discount plus Schnorr efficiency.
A concrete example: spending a single UTXO to a single output costs about 192 vB from a legacy address, 140 vB from P2SH-wrapped SegWit, 110 vB from native SegWit, and 111 vB from Taproot. At 50 sats/vB that is the difference between roughly $4.80 and $2.75 for the same payment. The savings compound on every spend for the life of the wallet.
If you are new to the idea of paying for data rather than for value moved, the crypto transaction fees primer in Basics is a gentler on-ramp.
The mempool is an auction, not a queue
When you broadcast a transaction it lands in the mempool — a loose, per-node collection of unconfirmed transactions. There is no global queue and no FIFO guarantee. Each miner assembles the next candidate block by sorting its own mempool by fee rate (sats/vB, adjusted for package relationships) and packing transactions in descending order until it hits the 4 MWU ceiling.
This is why fees spike when demand is concentrated. In May 2023, the Ordinals and BRC-20 inscription wave pushed median fee rates above 100 sats/vB for weeks, with peaks several times higher, because inscriptions happily pay for witness-heavy transactions and were willing to outbid ordinary payments. The April 2024 halving block was extreme in a different way: the Runes launch concentrated demand into a single block, and the fee-per-transaction average hit triple digits in dollar terms.
The lesson is not that Bitcoin is expensive. It is that the price is whatever the marginal buyer will pay, and you can usually choose not to be that buyer. During calm windows fee rates drop to 1–3 sats/vB, and a typical payment costs well under a dollar.
Block scarcity is exactly what makes the halving supply schedule discussed in Part 1 matter for miner economics: as the block subsidy halves every four years, fee revenue has to grow to keep the security budget intact.
Fee estimation, RBF, and CPFP
Wallets estimate fees by sampling the current mempool and projecting how quickly a given sats/vB rate will clear. The common presets map to target confirmation windows — next block, within 3 blocks, within 6 blocks, overnight. These are probabilities, not guarantees, and a sudden inflow of high-fee transactions can leave a conservative estimate stranded for hours.
Two tools let you correct course after the fact:
- Replace-By-Fee (RBF) — if your transaction was broadcast with the RBF flag set, you can rebroadcast it with a higher fee and the same inputs. Miners prefer the new version because it pays more; the old version is evicted. Most modern wallets enable RBF by default.
- Child-Pays-For-Parent (CPFP) — if you are the recipient of a stuck transaction, you can spend the unconfirmed output in a new transaction with a high fee. Miners evaluate package fee rate, so the child drags the parent into a block behind it.
RBF is for senders, CPFP is for receivers, and both exist because fee estimation is probabilistic.
Practical habits that compound
A few quiet habits save more over a year than chasing perfect fee timing:
- Use native SegWit (
bc1q) or Taproot (bc1p) receive addresses so every future spend gets the witness discount. - Consolidate dust UTXOs during low-fee windows. A wallet with fifty 5,000-sat inputs is expensive to spend; merging them when fees are 2 sats/vB costs cents and saves dollars later.
- Set RBF on by default so you always have an escape hatch if the mempool jumps.
- Check the mempool before broadcasting non-urgent payments. A twelve-hour wait often means paying a tenth as much.
How to hold it in Zelcore
Zelcore generates native SegWit (bc1q) Bitcoin addresses by default, so incoming funds arrive on the full witness discount and every outbound spend is cheaper than from a legacy wallet. The send flow surfaces Low / Normal / High priority estimates in sats/vB so you can match the current mempool rather than overpaying by habit. Because Zelcore is non-custodial, your seed phrase controls the keys and your UTXO set stays visible to you — important context for deciding when to consolidate. Part 6 of this series covers the full Zelcore workflow.
Key takeaways
- Every block is capped at 4,000,000 weight units; fees are set by auction on that fixed space.
- The SegWit witness discount (1 WU per witness byte, 4 WU per non-witness byte) makes
bc1qandbc1paddresses materially cheaper to spend than1...or3.... - SegWit activated in August 2017, Taproot in November 2021; both are soft-fork upgrades you opt into by choosing the address type.
- The mempool is an auction, not a queue — miners pack the highest sats/vB first, so quiet hours cost a fraction of busy ones.
- Fee spikes like May 2023 Ordinals and the April 2024 halving/Runes block are demand events, not protocol changes.
- RBF lets senders bump stuck transactions; CPFP lets receivers rescue them.
- Next in this series: Part 4 — The Lightning Network, and how payment channels let BTC bypass the fee auction entirely.



