How Bitcoin's Dust Limit Threshold Is Calculated Relative to the Cost of Spending an Output

You receive 200 satoshis from a faucet. It lands in your wallet, sits there, and weeks later you try to move it somewhere and discover the wallet won't let you do it without paying more in fees than the output is actually worth. Not frozen. Not stolen. Just economically inert, like a penny wedged behind a radiator: technically yours, practically gone. That's dust.

The threshold that defines it isn't a number someone picked from a policy document. It's arithmetic. And the arithmetic is more interesting than most explanations bother to show.

The Core Logic: When Spending Costs More Than You'd Spend

A UTXO that costs more to consume than its face value is a liability, not an asset. Full stop. If you hold an output worth 100 satoshis and spending it requires a 150-satoshi fee contribution, you net negative 50 by touching it. Miners wouldn't prioritize such inputs. Left to accumulate, these outputs bloat the UTXO set, which every full node must keep in memory.

Bitcoin Core draws the line here: an output is dust if the fee required to spend it, at the node's configured relay fee rate, exceeds one-third of its value.

Why one-third? Because in a typical transaction you're both creating and spending outputs. The rule accounts for the cost of the output itself (bytes in the transaction creating it) plus the cost of the input that will eventually spend it, set such that redemption would consume more than the output contains, relative to the relay fee.

The actual formula for a standard P2PKH output runs like this:

  • A P2PKH input is 148 bytes (outpoint: 36 bytes, scriptSig: 107 bytes, sequence: 4 bytes, plus overhead)
  • A P2PKH output is 34 bytes
  • Combined: 182 bytes
  • Multiply by the dust relay fee rate (default: 3 satoshis per byte)
  • Result: 546 satoshis

That's where the famous 546-satoshi figure comes from. Not a policy preference. A multiplication.

For a P2WPKH (native SegWit) output, the math shifts because witness data is discounted by a factor of four under the weight unit system, so a P2WPKH input weighs significantly less. Run the same calculation and you land at 294 satoshis. Taproot (P2TR) outputs, with their leaner spend scripts, come in around 330 satoshis, since the key-path spend carries a slightly different witness structure.

The dust limit isn't a single number. It's output-type-specific, and it moves when the relay fee rate changes.

A Concrete Scenario

Take two people, Priya and Marcus, who both receive small outputs from a Lightning channel close. Priya's wallet uses legacy P2PKH addresses. Marcus's uses native SegWit (P2WPKH). Both outputs are worth 400 satoshis.

Priya's output sits below the 546-satoshi P2PKH dust threshold. Bitcoin Core nodes running default settings won't relay a transaction that creates it. If it ends up on-chain anyway (miners can include it), Priya's wallet flags it as unspendable in practice, because any transaction spending it alone gets rejected by most nodes before it reaches a miner.

Marcus's 400-satoshi P2WPKH output clears the 294-satoshi threshold. His wallet can spend it. Same 400 satoshis, different script type, different outcome.

I find that asymmetry is the thing that actually clarifies the whole concept. The dust limit is a cost calculation, and SegWit genuinely costs less to spend. The numbers follow from the engineering.

What People Get Wrong

The most common misconception is that the dust limit is a consensus rule. It isn't, and conflating the two is a real mistake. Transactions below the threshold aren't invalid at the protocol level. They're non-standard, meaning most nodes won't relay them and most miners won't mine them by default. A miner running custom software could include a 1-satoshi output transaction in a block and the network would accept it. The limit lives in mempool policy, not in the protocol itself.

So ask yourself: if a rule can be quietly overridden by any miner with a custom config, how much weight should you put on it as a hard boundary?

The second misconception is that dust is permanent. It isn't. If fee rates fall far enough that a tiny output becomes economical to spend, or if a wallet batches many dust outputs together so the per-output fee share drops, dust can be reclaimed. Wallets sometimes do this automatically through coin consolidation, sweeping small UTXOs during low-fee windows.

The third: that the 3 sat/byte relay fee rate is fixed. Node operators can and do change it. Lower the rate and the dust threshold falls with it. Raise it, and outputs that were previously spendable tip over into dust territory without any change to the outputs themselves.

The dust limit is, at bottom, a fee-market concept wearing a rule's clothing. It answers one question: at what point does this output cost more to redeem than it contains? When the answer is "right now," the output stops functioning as money and starts functioning as bookkeeping overhead. What Bitcoin's code is actually doing, one quiet rejection at a time, is preventing that overhead from compounding across millions of nodes indefinitely.