BitcoinMachine
TERM_DEF // TRANSACTION / DUST_LIMIT
DUST
LIMIT
Dust Limit. A relay policy threshold below which outputs are uneconomical (cost more in fees to spend than they're worth).

This page sits in the Transaction section — How money moves: inputs, outputs, fees, signatures, sighash flags, and the formats that wrap them. Read on for what it is, why it exists, how it works under the hood, and what to watch out for.
Dust Limit — at a glance
TRANSACTION
Dust Limit is part of the FEE ECONOMY sub-family of transaction-level concepts. Lower bound below which an output is non-standard — mempools refuse to relay it because spending it would cost more in fees than the output is worth. A relay policy threshold below which outputs are uneconomical (cost more in fees to spend than they're worth).
Why it exists
DESIGN
Outputs that cost more to spend than their value bloat the utxo-set/">UTXO set forever — they sit in bitcoin-core-utxo-db/">chainstate, consume memory on every node/">full node, but no rational party will ever spend them. The dust limit refuses to relay these economically-irrational outputs at the mempool layer.
Mechanism
HOW IT WORKS
Bitcoin Core computes the threshold dynamically: 3 × output_size × relay_feerate. For a P2WPKH output (31 vbytes) at the default relay rate (1 sat/vB), this comes out to ~93 sats; for P2PKH it's ~546 sats. Below this, the tx is rejected from the standard mempool.
1. Wallet selects UTXOs whose total value covers the spend amount + estimated fee (coin selection). 2. Wallet builds the transaction body: version, inputs (each with prev txid + vout + sequence), outputs (each with value + scriptPubKey), locktime. 3. Wallet computes the sighash for each input (which parts of the tx the signature commits to — controlled by the SIGHASH flag). 4. Wallet signs each input with the right private key. Witness/scriptSig is populated with the resulting signatures + pubkeys. 5. Tx is broadcast to peers. Mempool propagation: tens of seconds globally. 6. A miner includes it in a block. Confirmation count grows by 1 per block; after ~6 the tx is effectively final.
Dust Limit — FEE ECONOMY
EXAMPLE
output type standard size dust threshold @ 1 sat/vB P2PKH 34 vbytes 546 sats P2SH 32 vbytes 540 sats P2WPKH 31 vbytes 294 sats (lower due to witness discount) P2WSH 43 vbytes 330 sats P2TR 43 vbytes 330 sats OP_RETURN n/a 0 (data-carrier is not "dust") Test: bitcoin-cli getmempoolinfo → "minrelaytxfee": 0.00001000 (sats/kvB)
POLICY, NOT CONSENSUS
Dust is a Core relay policy. Other implementations may set it differently; miners can include dust they accept directly.
ATOMIC
A transaction is either fully accepted into a block or fully rejected. There is no partial spend.
IMMUTABLE INPUTS
A UTXO can only ever be spent once. After that, it is permanently consumed.
NO BALANCES
Bitcoin tracks UTXOs, not balances. Your wallet computes a balance by summing the UTXOs it controls.
Things that catch people out
PITFALLS
  • Dust limit is policy (mempool), not consensus — a block CAN include a dust output if a miner mines it directly. It just won't propagate through Core nodes by default.
  • address-reuse/">Address reuse degrades privacy — every reuse links more of your UTXOs together publicly. Modern wallets generate a fresh address per receive.
  • Fee estimation matters: under-pay and your tx sits in the mempool for hours; over-pay and you tip the miner more than necessary. Use a fee estimator.
  • "Change outputs" must go back to a fresh address you control. A missing change output sends the difference to the miner as fee — a known footgun.

TERMINOLOGY
Dust Limit
A relay policy threshold below which outputs are uneconomical (cost more in fees to spend than they're worth).
Transaction (Tx)
A signed payload spending one or more UTXOs and creating new ones; every state change in Bitcoin is a tx.
Raw Transaction
The hex-serialized bytes of a transaction, ready to broadcast or analyze.
Transaction ID (TXID)
HASH256 of a transaction's pre-witness serialization; used to reference outputs by (txid, vout).
wTXID (Witness TXID)
HASH256 of the full transaction including witness data; commits to signatures and used in the witness commitment.
Input
A reference to a previous output being spent, plus the data (scriptSig/witness) authorizing the spend.
Output
An (amount, scriptPubKey) pair created by a transaction; spendable later by a tx whose input references it.
UTXO (Unspent Transaction Output)
An output that hasn't been spent yet; your "balance" is the sum of UTXOs you can sign for.