Home › Glossary › Dust

Dust

Also called: dust output, dust limit, dust threshold, dust UTXO, dust attack, 546 sats.

Dust is a bitcoin output so small that spending it would cost more in fees than it's worth. Nodes don't relay transactions that create it by default.

Dust is an output whose value is too small to be worth spending: the fee to use it as an input would eat most or all of it. Bitcoin Core treats outputs below the dust limit as non-standard, so by default it won't relay transactions that create them.

The dust limit

The dust limit is relay policy, not a consensus rule. Bitcoin Core calculates it from the size of the output plus the input needed to spend it, at a default "dust relay" fee rate of 3 sat/vB. That gives a different threshold for each output type, for example 546 satoshis for P2PKH, 294 for P2WPKH and 330 for P2TR. Nodes using BIP 61 reject messages had a dedicated code, 0x41, for outputs below the dust threshold.

Ephemeral dust and anchors

Some protocols deliberately create tiny outputs, such as anchor outputs used for fee bumping. BIP 433 describes Pay to Anchor (P2A), a keyless output type, and relay policy that allows a single dust output, even one worth zero, as long as a child transaction in the same package spends it. The P2A dust threshold is 240 satoshis.

Dust attacks

Attackers sometimes send dust to many addresses, hoping the owners will later spend it together with their other coins and so link their addresses. Wallets often let users freeze such coins, but frozen dust stays in the UTXO set and can be spent by accident after a restore. BIP 451 proposes a standard way to get rid of it: spend the dust to a single OP_RETURN output containing ash, with the entire value going to the fee, signed ALL|ANYONECANPAY so unrelated disposals can be batched together.

See also satoshi and OP_RETURN.

BIPs that define Dust

  • BIP 451: Dust UTXO Disposal Protocol: Draft. Specifies a standard way for wallets to get rid of 'dust', tiny unwanted amounts often sent to track users, by spending them entirely as miner fees. Doing so carefully, without mixing the dust with…
  • BIP 433: Pay to Anchor (P2A): Draft. Defines Pay to Anchor, a tiny standard output that anyone can spend without a signature. Its purpose is to act as a hook for fee-bumping: by spending it in a follow-up transaction, any party can add…
  • BIP 61: Reject P2P message: Deployed. Adds a "reject" message so a node can tell a peer why it refused a transaction or block. This made troubleshooting easier for wallet and node developers, though Bitcoin Core later removed the message.

Related terms

  • UTXO: A UTXO (unspent transaction output) is an amount of bitcoin locked to a script and not yet spent. A wallet's balance is the sum of its UTXOs.
  • Satoshi (sat): A satoshi (sat) is the smallest unit of bitcoin: one hundred-millionth of a bitcoin, or 0.00000001 BTC. 1 BTC = 100,000,000 sats.
  • Anchor output: An anchor output is a small extra output on a pre-signed transaction that can be spent by a CPFP child to add fees when the transaction is broadcast.
  • OP_RETURN: OP_RETURN is the Bitcoin Script opcode (0x6a) that makes an output provably unspendable, used to embed small amounts of data in a transaction.