Dust

"Dust" is defined in terms of CTransaction::minRelayTxFee, which has units satoshis-per-kilobyte. If you'd pay more than 1/3 in fees to spend something, then we consider it dust.

  • A typical spendable non-segwit txout is 34 bytes big, and will need a CTxIn of at least 148 bytes to spend: so dust is a spendable txout less than 546*minRelayTxFee/1000 (in satoshis).
  • A typical spendable segwit txout is 31 bytes big, and will need a CTxIn of at least 67 bytes to spend: so dust is a spendable txout less than 294*minRelayTxFee/1000 (in satoshis).

By default, with a minimum relay fee of 0.00005BTC/KB, the dust is defined as 2730 satoshi. If a transaction pays a decent fee but has an output that has less than 2730 satoshi, it won't be relayed by the nodes with this kind of configuration.

546*5000/1000=2730
294*5000/1000=1740

UPDATE for (0.15.x)

DUST_RELAY_TX_FEE = 3000

Min feerate for defining dust, Historically this has been based on the minRelayTxFee, however changing the dust limit changes which transactions are standard and should be done with care and ideally rarely. It makes sense to only increase the dust limit after prior releases were already not creating outputs below the new threshold.

References

  • https://bitcointalk.org/index.php?topic=1728802.msg17300880#msg17300880
  • https://github.com/bitcoin/bitcoin/blob/v0.15.0.1/src/policy/policy.h#L48