
The fee box in your wallet isn't a service charge. It's a bid.
When you hit send, nothing moves. Your wallet builds a small file, signs it with your private key, and shouts it at whatever nodes it's connected to. Those nodes pass it on. Within a few seconds it's sitting in the waiting room of most machines running Bitcoin worldwide. That waiting room is called the mempool, and your transaction stays there until a miner decides it's worth including in a block.
Miners aren't being generous. They pick the transactions that pay the most per byte of space, because block space is capped and their income from fees is whatever they can squeeze into roughly one million virtual bytes every ten minutes or so. Bid high enough and you're in the next block. Bid low and you wait behind everyone who bid more.
Fees are priced by size, not by amount
This is the part that catches everyone the first time. Sending $30 and sending $3 million can cost exactly the same fee. The network doesn't care what your transaction is worth. It cares how much room it takes up.
Size is measured in virtual bytes (vB), and the fee rate you're setting is sats per vB. A simple payment from a modern SegWit address, one input and two outputs, runs around 140 vB. The same payment from an old-style address beginning with a 1 is closer to 225 vB. A Taproot transaction can come in near 110 vB. Same money, same destination, meaningfully different cost, purely because of the address format you're spending from.
What really inflates size is inputs. Your wallet balance isn't a single number. It's a pile of separate chunks of coin from every payment you've ever received, and each chunk you spend adds roughly 68 vB to the transaction. If you've been stacking $50 a week for two years and you go to spend the lot, your wallet has to pull in a hundred of those chunks. That transaction might be seven or eight kilobytes. At a busy moment, the fee on it can be brutal.
So the person who received one big payment and the person who received a hundred small ones pay wildly different amounts to move the same balance. Nobody tells you that when you set up the wallet.
Why the price swings
Three things move fees, and they move on different timescales.
Demand, hour to hour. Block space supply is fixed. Demand isn't. Weekday afternoons in Europe and North America overlapping tends to be busier than 4am on a Sunday. When a big exchange does a batch of withdrawals, or a price move sends everyone scrambling to move coin at once, the mempool fills and the bidding gets serious. When things go quiet, the backlog clears and the minimum viable bid drops back to almost nothing.
Luck, block to block. Blocks arrive at an average of ten minutes, but the average hides a lot. Mining is a random process. Roughly a third of the time, the gap between blocks is longer than ten minutes. Around one time in twenty, it's longer than half an hour. A forty-minute gap during a busy period stacks up thousands of unconfirmed transactions, and the fee rate needed to get in climbs while you're watching.
Difficulty, fortnight to fortnight. Every 2,016 blocks, the network retargets so the average stays near ten minutes. If a lot of mining hardware came online, difficulty goes up. If a chunk went offline, it drops. Between retargets, blocks can run consistently fast or slow for days, which quietly changes how much space gets released.
On top of all that, there are periods where non-payment data gets written into the chain in volume. Those waves have pushed fees up hard before, and they don't follow any schedule you can plan around.
What a confirmation actually is
One confirmation means your transaction is in a block, and that block is at the tip of the chain. That's real, but it isn't final. Two miners can occasionally find a block at nearly the same moment, the network briefly disagrees about which one counts, and one of them gets discarded. If your transaction was only in the discarded one, it drops back to the mempool.
Each block built on top makes reversal exponentially harder. The old convention of six confirmations, about an hour, comes from the original whitepaper's maths on how much work an attacker would need. For a coffee, one confirmation is plenty. For a house deposit, wait.
Exchanges set their own thresholds, and they're often more conservative than they need to be. If a platform wants six confirmations on a deposit and blocks are running slow, your money is unavailable for well over an hour with nothing you can do about it. Plan around that before you need the funds, not after.
Getting unstuck
If you underbid and your transaction is sitting there going nowhere, you've got two tools.
Replace-by-fee. Your wallet rebroadcasts the same transaction with a higher fee. Nodes replace the old version. This only works if the original was flagged as replaceable, and plenty of wallets still send without that flag by default. Check yours now, while nothing's on fire.
Child-pays-for-parent. If you're the one receiving and the sender underpaid, you can spend the incoming unconfirmed output in a new high-fee transaction. A miner who wants that fat child fee has to include the parent as well. Fiddly, but it works.
There's also the option nobody mentions: wait. Most mempool congestion clears within a day or two. If the payment isn't urgent, a low bid on a Tuesday will often confirm by Thursday for a fraction of what a rush job costs. Transactions do eventually drop out of node mempools if they sit unconfirmed for days, and then the coin is simply back in your wallet, unspent.
Practical habits
Look at the mempool before you send. There are free block explorers that show the current backlog and what fee rate is clearing. Your wallet's "fast / medium / slow" buttons are estimates, and they're often generous, because an overpaid fee costs the wallet company nothing.
Consolidate when fees are cheap. If you've accumulated a lot of small chunks, pick a quiet weekend and send them to yourself in one transaction. You'll pay once at a low rate rather than repeatedly at high ones. The trade-off is real though: consolidating links those chunks together permanently on a public ledger, which tells an observer they all belong to one person. If that matters to you, don't.
Use a modern address format. Bech32 or Taproot, not the legacy ones. It's free savings on every transaction you'll ever make.
And if you're moving small amounts often, on-chain isn't the only option. Lightning exists precisely because paying $2 in fees to send $5 is absurd. It has its own complications, and it isn't the right tool for moving your long-term holdings, but for small frequent payments it sidesteps the auction entirely.
None of this is financial advice, and nothing here tells you whether to own any of it. Ask an accountant about the tax side, because in most places spending or swapping is a disposal and the record-keeping is your problem.
The fee auction runs whether you understand it or not. The only question is whether you're bidding on purpose.
Ray Okonkwo
Money & Business
Former commercial banker turned small-business owner. Covers salary, credit, margins and the arithmetic nobody does before signing.
Watch
Worth an hour of your evening
More from Crypto.
From channels we rate. Plays on YouTube.
Read next
