In earlier releases of Bitcoin Core, the dust limit was defined as an output whose spending would require more than 1/3 of its value as fees:

https://bitcoin.stackexchange.com/a/41082/10845

The minimum fee was in turn defined by minRelayTxFee, a user-adjustable setting that defaulted at one point to 1 satoshis/byte.

The release notes for 0.14.0 have this to say about minRelayTxFee:

Since the changes in 0.12 to automatically limit the size of the mempool and improve the performance of block creation in mining code it has not been important for relay nodes or miners to set -minrelaytxfee. With this release the following concepts that were tied to this option have been separated out:

  • incremental relay fee used for calculating BIP 125 replacement and mempool limiting. (1000 satoshis/kB)
  • calculation of threshold for a dust output. (effectively 3 * 1000 satoshis/kB)
  • minimum fee rate of a package of transactions to be included in a block created by the mining code. If miners wish to set this minimum they can use the new -blockmintxfee option. (defaults to 1000 satoshis/kB)

The -minrelaytxfee option continues to exist but is recommended to be left unset.

https://bitcoin.org/en/release/v0.14.0

Unfortunately, this statement doesn't clarify the question of how the dust limit is computed going forward. In particular, the statement "calculation of threshold for a dust output. (effectively 3 * 1000 satoshis/kB)" is confusing. It appears to mean that the dust limit is hard coded with a fee density of 1 satoshis/byte, yielding a minimum output value of 546 satoshis ((34 + 148) * 3, as per previous policy). But this doesn't make much sense given that the market fee density for next-block confirmation is routinely above 100 satoshis/byte, and changes daily.

Assume I'm running a 0.14.0 node with default settings. What's the effective dust limit for this node, and how is it calculated, given that I'm being instructed not to touch minRelayTxFee?

up vote 9 down vote accepted
+100

The dust limit in 0.14.0+ is set by a value called the dustRelayFee. This is separate from the minRelayTxFee although it has the same default value of 1 satoshi/byte. That is what is used to calculate dust now, and the dust calculation is still the same as before. So the default dust limit in 0.14.0+ is 546 satoshis. You can configure the value you set for the dustRelayFee by using the -dustrelayfee=<n> option.

In Bitcoin Core 0.15.0, this will change slightly. The calculation changes to be that the dust limit is the amount that we would pay to spend the output at the dustRelayFee. To keep the dust limit the same as before at 546 satoshis, the dustRelayFee is increased to 3 satoshis/byte.

  • 1
    is there an RPC call that can return the minimum amount allowed to be sent in a tx? – knocte Nov 1 '17 at 4:39
  • AFAIK, there is not. – Andrew Chow Nov 1 '17 at 5:29

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.