Skip to content
buybitcoinsmart

Glossary / Privacy & security

Dust limit

Also known as Dust threshold.

Definition
The dust limit is the smallest amount a bitcoin output can hold before nodes refuse to relay the transaction that creates it, currently 546 satoshis for a legacy address.

Nodes drop transactions that create outputs too small to be worth spending, which keeps the network from filling with unspendable scraps. Bitcoin Core prices the limit at three satoshis per virtual byte of the future spend: 546 satoshis for a pay-to-public-key-hash output, 294 for native SegWit, 330 for Taproot. If a wallet refuses to send an amount, this rule is usually why.

How it works

Bitcoin Core applies the dust limit to each output separately, and it asks a single question: would spending this output later cost more than the output is worth?

The calculation lives in GetDustThreshold in src/policy/policy.cpp. The node adds the size of the output as it sits in the ledger to the size of the input that would eventually spend it, then multiplies by DUST_RELAY_TX_FEE, a policy constant of 3,000 satoshis per kilo-virtual-byte, or 3 sat/vB. Work it through for the three common script types:

  • A pay-to-public-key-hash output is 34 bytes and takes 148 virtual bytes to spend, so 182 vbytes at 3 sat/vB gives 546 satoshis.
  • A native SegWit output (bech32, starting bc1q) is 31 bytes and its input is discounted to about 67 vbytes, giving 98 vbytes and 294 satoshis.
  • A Taproot output (bc1p) is 43 bytes with the same discounted input, giving 110 vbytes and 330 satoshis.

Two details matter. First, this is relay policy, not a consensus rule: a miner who receives a dusty transaction out of band can put it in a block, and every node will accept that block. Second, OP_RETURN outputs are exempt, because they are provably unspendable, so there is no future input to pay for.

The threshold has also stayed still while the fee market has not. During a spike at 200 sat/vB, spending that same legacy output costs roughly 29,600 satoshis, so it is economically dead long before the network would call it dust.

Where you see it

The dust limit shows up as an error message, almost never as a concept.

Wallets phrase it as "amount below dust threshold", "output too small", or simply grey out the send button. Bitcoin Core and most wallet software also apply it silently to change: if the leftover from a payment would fall under the threshold, the wallet drops the change output and hands that value to the miner as extra fee rather than create something nobody can spend.

Exchanges sit far above the limit anyway. Their withdrawal minimums are set by their own cost of servicing a request, not by policy, so you will hit a 0.0001 BTC or 10 dollar floor long before you hit 546 satoshis.

Lightning carries its own version of the rule. Each channel negotiates a dust_limit_satoshis value, and BOLT 2 requires at least 354 satoshis on channels using anchor outputs. Any payment below that limit gets no output in the commitment transaction at all: if the channel force-closes while such a payment is in flight, the amount goes to miners as fee.

Dust limit vs dust

Dust is a coin; the dust limit is a rule about coins. In everyday use, dust means any output too small to be worth spending at today's fees, a line that moves every time the mempool fills up. The dust limit is a fixed policy constant that does not move at all. That gap is why you can hold an output the network happily relayed, and still find it uneconomic to spend.

Dust limit vs minimum relay fee

The minimum relay fee is a floor on the whole transaction, defaulting to 1,000 satoshis per kilo-virtual-byte, or 1 sat/vB. The dust limit is a floor on a single output, and it uses a deliberately higher rate of 3 sat/vB so that an output is only created if it will still be spendable in slightly worse conditions than the ones it was made in. A transaction can clear the relay fee comfortably and still be rejected because one 200 satoshi output failed the dust check.

Not to be confused with

Frequently asked questions

Why is the dust limit 546 satoshis?

Because 546 is what it costs to spend a legacy pay-to-public-key-hash output at 3 satoshis per virtual byte. The output plus the input that will spend it come to 182 virtual bytes, and Bitcoin Core multiplies that by its dust relay fee of 3,000 satoshis per kilo-virtual-byte.

Can I still spend an output below the dust limit?

Yes, if you already hold one. The limit blocks the creation of such outputs at relay time; it does not freeze outputs that already exist. Spending one usually costs more in fees than it is worth, which is the point the rule is making.

Does the dust limit change with network fees?

No. It is a fixed policy constant, so it stays at 546, 294, or 330 satoshis depending on the address type while real fees move between 1 and several hundred satoshis per virtual byte.

Related terms

More in Privacy & security