<p>To understand 'dust' you must understand a few things:</p>

<p>Firstly, a UTXO is an unspent transaction output. This is essentially a piece of bitcoin somewhere on the blockchain that is unspent.</p>

<p>To create a transaction, 1 or more UTXOs are used to form the inputs, and 1 or more UTXOs are "born" in the process. After the transactions are confirmed, the UTXOs that formed the inputs are now just "TXOs" (ie. they've been spent).</p>

<p>To ensure a transaction is confirmed, a fee must be added, that fee is proportional to the overall size of the transaction, which is the number of bytes the transaction takes up on the blockchain. The more UTXOs are used as inputs, the bigger the transaction will be, thus the higher the fee that needs to be paid.</p>

<p>If I have 1 BTC stored in 1 UTXO, it will cost me less to send that than 1 BTC spread across 10 UTXOs of 0.1 BTC, and it will cost me less to send that than 100 UTXOs of 0.01 BTC.</p>

<p>The fees are calculated as satoshis per byte, and the fees fluctuate depending on how busy the network is.</p>

<p>Every UTXO you want to use in a transaction will incur an increase in fee.</p>

<p>Every UTXO takes up a number of bytes in the transaction.</p>

<p>If you multiply fee per byte by the number of bytes taken by the UTXO and it exceeds the value held in the UTXO, then this UTXO is said to be 'dust'.</p>

<p>So a 'dust' UTXO is a UTXO that isn't worth including in a transaction because to do so would incur a fee increase higher than the value of the UTXO.</p>

CC BY-SA 4.0
2017-11-25T16:45:08.323Z
2020-05-30T08:24:02.590Z
2020-05-30T08:24:02.590Z
Noel O'Donnell
<p><strong>Dust is often used colloquially to refer to any small amount UTXO. In contrast, Bitcoin Core’s precise definition of dust is used in mempool policy to define a minimum for output amounts in standard transactions.</strong></p>
<p>Bitcoin Core considers a transaction output to be dust, when its value is lower than the cost of creating and spending it at the <a href="https://github.com/bitcoin/bitcoin/commit/9022aa3" rel="nofollow noreferrer"><code>dustRelayFee</code></a> rate. The default value for <code>dustRelayFee</code> is 3,000 sat/kvB¹, which results in the same dust values as the prior dust definition used before Bitcoin Core 0.15.0. The previous dust definition tied the dust limit to the <a href="https://bitcoin.stackexchange.com/q/48235/5406">minRelayTxFee</a> rate and the spending cost of an output exceeding 1/3 of its value.</p>
<pre><code>dust = (input_vsize + output_size) × 3 sat/vB
</code></pre>
<p>At the default <code>dustRelayFee</code> of 3,000 sat/kvB, given the size of a P2PKH input being 148 bytes and the size of a P2PKH output being 34 bytes, P2PKH outputs worth less than <strong>546 satoshis</strong> are considered dust by Bitcoin Core (546 satoshi being the smallest non-dust value). For P2WPKH outputs, Bitcoin Core considers outputs worth less than <strong>294 satoshis</strong>² dust. Since the input sizes of scripthash and taproot outputs are <a href="https://bitcoin.stackexchange.com/a/113650/5406">unknowable</a>, Bitcoin Core combines their actual output sizes with the input sizes of the corresponding keyhash types for dust thresholds of <strong>540 satoshis</strong> for P2SH, and <strong>330 satoshis</strong> for P2WSH and P2TR.</p>
<p>The <code>dustRelayFee</code> can be set with the hidden command line option <code>-dustrelayfee</code>.</p>
<p>Additionally, Bitcoin Core 0.15.0 added a <code>discard_rate</code>. The <code>discard_rate</code> matches the longest target fee rate estimate (currently the 1,000 block fee rate estimate), but is bounded to at least <code>dustRelayFee</code> and at most 10,000 satoshi/kvB. Any change output that would be dust at the <code>discard_rate</code>, i.e. would cost more to spend than its value at the <code>discard_rate</code>, will automatically be dropped to the fee instead of being created as a change output.</p>
<p><strong>Other uses of &quot;dust&quot;</strong><br />
Note that the term &quot;dust&quot; is also colloquially used to refer to a) any UTXOs of vanishingly low value and b) for UTXOs that are uneconomical to create or spend at <em>the current feerate</em>.</p>
<hr />
<p><sup>¹</sup> <sub>The <em>transaction size</em> was measured in bytes before segwit. Since segwit, the relevant measure is <em>transaction weight</em> which is either given in virtualbytes (vbyte, vB) or weight units (wu) where 4 wu = 1 vB. For non-segwit transactions, their size is equal to their virtualsize: 1 B = 1 vB. For segwit transactions, their virtualsize is smaller or equal to their size. You can read more about these units on <a href="https://bitcoin.stackexchange.com/q/89385/5406">Is there a difference between bytes and virtual bytes (vbytes)?</a>.<br />
<sup>²</sup> The attentive reader might expect the dust limit for P2WPKH outputs to be 297 satoshis as P2WPKH outputs are 31 bytes and P2WPKH inputs are about <a href="https://bitcoin.stackexchange.com/q/100159/5406">68 vbytes</a>, but it appears that when the dust limit for P2WPKH outputs was <a href="https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/policy/policy.cpp#L40" rel="nofollow noreferrer">implemented</a>, the code contained a rounding error in the vsize of the input that caused it to be assumed one vbyte smaller than it actually is. (Hat tip to Crypt-iQ for <a href="https://github.com/lightningnetwork/lnd/issues/3946" rel="nofollow noreferrer">pointing this out</a>.)</sub></p>

CC BY-SA 4.0
2015-10-28T10:39:43.207Z
2024-01-03T13:15:54.407Z
2024-01-03T13:15:54.407Z
Murch
<p>EDIT: This answer still gets upvotes 10 years later, so I'm going to try and update the answer a bit as all of the links and numbers were horribly out of date.</p>
<p>Dust is any transaction that is considered too small to be worth carrying out. Dust is a theoretical problem in cryptocurrency because a bad actor could attempt to flood the processing network with an overload of tiny transactions: the equivalent of trying to shutdown a store by paying at the only register with one penny at a time. Therefore, there are some safeguards in the BTC network that prevents &quot;dust&quot; transactions from propagating. Minimum transaction fees are also a way of preventing dust from being a problem.</p>
<p>The exact size below which a transaction is considered &quot;dust&quot;, however, has no hard definition. Different clients, software, and different nodes might all have different limits. And those limits might change over time as the value of BTC changes. Amusingly, when I originally wrote this answer BTC was around $20 and 0.01 BTC was considered dust by some clients as it was only worth $0.20. As I edit this article today, that same 0.01 BTC is worth about $170, so I don't think it would be classified as dust by anyone.</p>
<p>The Bitcoin Core currently defines dust here in <a href="https://github.com/cozz/bitcoin/blob/bdc2d515faf2b6459c0ee98de5cbc3149ff5970d/src/core.h#L151" rel="nofollow noreferrer">this code</a>. (Even if you can't read C code, the majority is just text describing the intent of the fucnction.):</p>
<pre><code>    bool IsDust(int64_t nMinRelayTxFee) const
    {
        // &quot;Dust&quot; is defined in terms of CTransaction::nMinRelayTxFee,
        // 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 txout is 34 bytes big, and will
        // need a CTxIn of at least 148 bytes to spend,
        // so dust is a txout less than 54 uBTC
        // (5460 satoshis) with default nMinRelayTxFee
        return ((nValue*1000)/(3*((int)GetSerializeSize(SER_DISK,0)+148)) &lt; nMinRelayTxFee);
    }
</code></pre>
<p>I'd consider this the lowest threshold of dust: 54 uBTC. If Bitcoin Core rejects a transaction as dust it's very unlikely for a transaction to be successful. But other software and/or markets might have higher thresholds for dust. And Bitcoin Core might change its threshold again if the prices and/or fees change significantly. The exact definition of dust, and the threshold for what is considered dust may change over time with the transaction volume (and therefore competition for space in the blockchain) and exchange rates.</p>

CC BY-SA 3.0
2013-05-17T10:13:54.917Z
Considering 0.01BTC as dust is probably outdated; it likely dates back to when bitcoins were worth less that US$10.
Highly Irregular
CC BY-SA 3.0
2013-07-09T00:24:12.630Z
Worth noting that the minimum amount counts for all outputs, even change.  The satoshi client is set up to just include the extra small amount as a fee to miners instead of creating change for a small amount.
Brian Armstrong
CC BY-SA 4.0
2022-12-12T16:27:11.240Z
Just a note that I added a major update to this answer today, because it was still getting upvotes 10 years later. Comments above may no longer be valid.
David Ogren
CC BY-SA 4.0
2022-12-12T22:17:10.840Z
Hey David, today, Bitcoin Core's dust threshold is 1/10th of what you describe (see my answer). I think the code you are citing is from 2014. Since you just updated your answer, I was wondering whether you might want to point that out about your code snippet.
Murch
CC BY-SA 4.0
2013-05-16T20:07:08.627Z
2022-12-12T16:26:16.820Z
2022-12-12T16:26:16.820Z
David Ogren
<p>Comment definition of dust from <a href="https://github.com/bitcoin/bitcoin/blob/6d8543504d8c5bde1d12a3c60407dee44d2c8e11/src/policy/policy.cpp" rel="nofollow noreferrer">the actual Bitcoin repo on Github</a> found on file policy.cpp:</p>
<pre><code>// &quot;Dust&quot; is defined in terms of dustRelayFee,
// which has units satoshis-per-kilobyte.
// If you'd pay more in fees than the value of the output
// 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
// 182*dustRelayFee/1000 (in satoshis).
// 546 satoshis at the default rate of 3000 sat/kB.
// 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
// 98*dustRelayFee/1000 (in satoshis).
// 294 satoshis at the default rate of 3000 sat/kB.
</code></pre>

CC BY-SA 4.0
2020-09-27T20:54:56.853Z
2020-09-27T20:54:56.853Z
Albert Renshaw
<p>Dusty outputs are really small sized outputs from a transaction.  Bitcoin transactions are 0 sum so what goes in must come out.  When you make a transaction to send some money from your address to another address, any remainder gets sent to a change address that you'll be in control of.  Now if that remainder is really small then it becomes "dusty."  Then if you try to make another transaction with that dusty unspent output (UTXOs) miners will reject the transaction and it won't get confirmed, ergo the bitcoin won't move.</p>

<p>The bitcoin network depending on the version a miner is running has different definitions of what is considered dusty UTXOs.  If this site is correct <a href="https://getaddr.bitnodes.io/nodes/" rel="nofollow">version of bitcoind running on nodes</a> the bulk of the network is at 0.10 and 0.9.*.<a href="https://bitcoin.org/en/developer-guide#non-standard-transactions" rel="nofollow">For 0.9.3 the dust limit is 546 satoshis</a>.  For version .10 I believe it is 546 and earlier versions of 0.9 I believe was higher at 10x around 5k satoshis.</p>

CC BY-SA 3.0
2015-03-26T16:59:27.240Z
2015-03-26T16:59:27.240Z
aDude
<p>Bitcoin dust refers to the thousands and thousands of tiny transactions that some sites flood the network and thus the blockchain with.</p>

CC BY-SA 3.0
2016-01-25T08:17:15.697Z
I think usually it rather refers to the transaction outputs, not the transactions.
Murch
CC BY-SA 3.0
2013-05-16T20:09:42.627Z
2013-05-16T20:09:42.627Z
alwillis
<p>I've seen the term "dust" used to describe small transactions that might be considered as spam by the Bitcoin network. Is there is a generally accepted definition of this term?</p>

CC BY-SA 3.0
2013-05-16T20:04:18.587Z
I created this question while writing [an answer](http://bitcoin.stackexchange.com/questions/10961/is-it-unusual-for-no-daily-activity/10976#10976) and not finding a good link or definition for dust. I'll post my first attempt at an answer, but I'd love to see something more definitive.
David Ogren
<transactions><terminology><dust>
What is meant by Bitcoin dust?
David Ogren
# What is meant by Bitcoin dust?

(Asked by: username_0 on 2013-05-16)

I've seen the term "dust" used to describe small transactions that might be considered as spam by the Bitcoin network. Is there is a generally accepted definition of this term?

**Tags:** transactions, terminology, dust

> **Comments:**
> **username_0**: I created this question while writing [an answer](http://bitcoin.stackexchange.com/questions/10961/is-it-unusual-for-no-daily-activity/10976#10976) and not finding a good link or definition for dust. I'll post my first attempt at an answer, but I'd love to see something more definitive.  

---

## 6 answers

### Answer by username_2 on 2015-10-28. Score: 52

**Dust is often used colloquially to refer to any small amount UTXO. In contrast, Bitcoin Core’s precise definition of dust is used in mempool policy to define a minimum for output amounts in standard transactions.**

Bitcoin Core considers a transaction output to be dust, when its value is lower than the cost of creating and spending it at the [`dustRelayFee`](https://github.com/bitcoin/bitcoin/commit/9022aa3) rate. The default value for `dustRelayFee` is 3,000 sat/kvB¹, which results in the same dust values as the prior dust definition used before Bitcoin Core 0.15.0. The previous dust definition tied the dust limit to the [minRelayTxFee](https://bitcoin.stackexchange.com/q/48235/5406) rate and the spending cost of an output exceeding 1/3 of its value.

```
dust = (input_vsize + output_size) × 3 sat/vB

```

At the default `dustRelayFee` of 3,000 sat/kvB, given the size of a P2PKH input being 148 bytes and the size of a P2PKH output being 34 bytes, P2PKH outputs worth less than **546 satoshis** are considered dust by Bitcoin Core (546 satoshi being the smallest non-dust value). For P2WPKH outputs, Bitcoin Core considers outputs worth less than **294 satoshis**² dust. Since the input sizes of scripthash and taproot outputs are [unknowable](https://bitcoin.stackexchange.com/a/113650/5406), Bitcoin Core combines their actual output sizes with the input sizes of the corresponding keyhash types for dust thresholds of **540 satoshis** for P2SH, and **330 satoshis** for P2WSH and P2TR.

The `dustRelayFee` can be set with the hidden command line option `-dustrelayfee`.

Additionally, Bitcoin Core 0.15.0 added a `discard_rate`. The `discard_rate` matches the longest target fee rate estimate (currently the 1,000 block fee rate estimate), but is bounded to at least `dustRelayFee` and at most 10,000 satoshi/kvB. Any change output that would be dust at the `discard_rate`, i.e. would cost more to spend than its value at the `discard_rate`, will automatically be dropped to the fee instead of being created as a change output.

**Other uses of "dust"**  
Note that the term "dust" is also colloquially used to refer to a) any UTXOs of vanishingly low value and b) for UTXOs that are uneconomical to create or spend at *the current feerate*.

---

¹ The *transaction size* was measured in bytes before segwit. Since segwit, the relevant measure is *transaction weight* which is either given in virtualbytes (vbyte, vB) or weight units (wu) where 4 wu = 1 vB. For non-segwit transactions, their size is equal to their virtualsize: 1 B = 1 vB. For segwit transactions, their virtualsize is smaller or equal to their size. You can read more about these units on [Is there a difference between bytes and virtual bytes (vbytes)?](https://bitcoin.stackexchange.com/q/89385/5406).  
² The attentive reader might expect the dust limit for P2WPKH outputs to be 297 satoshis as P2WPKH outputs are 31 bytes and P2WPKH inputs are about [68 vbytes](https://bitcoin.stackexchange.com/q/100159/5406), but it appears that when the dust limit for P2WPKH outputs was [implemented](https://github.com/bitcoin/bitcoin/blob/94f83534e4b771944af7d9ed0f40746f392eb75e/src/policy/policy.cpp#L40), the code contained a rounding error in the vsize of the input that caused it to be assumed one vbyte smaller than it actually is. (Hat tip to Crypt-iQ for [pointing this out](https://github.com/lightningnetwork/lnd/issues/3946).)


---

### Answer by username_0 on 2013-05-16. Score: 32

EDIT: This answer still gets upvotes 10 years later, so I'm going to try and update the answer a bit as all of the links and numbers were horribly out of date.

Dust is any transaction that is considered too small to be worth carrying out. Dust is a theoretical problem in cryptocurrency because a bad actor could attempt to flood the processing network with an overload of tiny transactions: the equivalent of trying to shutdown a store by paying at the only register with one penny at a time. Therefore, there are some safeguards in the BTC network that prevents "dust" transactions from propagating. Minimum transaction fees are also a way of preventing dust from being a problem.

The exact size below which a transaction is considered "dust", however, has no hard definition. Different clients, software, and different nodes might all have different limits. And those limits might change over time as the value of BTC changes. Amusingly, when I originally wrote this answer BTC was around $20 and 0.01 BTC was considered dust by some clients as it was only worth $0.20. As I edit this article today, that same 0.01 BTC is worth about $170, so I don't think it would be classified as dust by anyone.

The Bitcoin Core currently defines dust here in [this code](https://github.com/cozz/bitcoin/blob/bdc2d515faf2b6459c0ee98de5cbc3149ff5970d/src/core.h#L151). (Even if you can't read C code, the majority is just text describing the intent of the fucnction.):

```
    bool IsDust(int64_t nMinRelayTxFee) const
    {
        // "Dust" is defined in terms of CTransaction::nMinRelayTxFee,
        // 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 txout is 34 bytes big, and will
        // need a CTxIn of at least 148 bytes to spend,
        // so dust is a txout less than 54 uBTC
        // (5460 satoshis) with default nMinRelayTxFee
        return ((nValue*1000)/(3*((int)GetSerializeSize(SER_DISK,0)+148)) < nMinRelayTxFee);
    }

```

I'd consider this the lowest threshold of dust: 54 uBTC. If Bitcoin Core rejects a transaction as dust it's very unlikely for a transaction to be successful. But other software and/or markets might have higher thresholds for dust. And Bitcoin Core might change its threshold again if the prices and/or fees change significantly. The exact definition of dust, and the threshold for what is considered dust may change over time with the transaction volume (and therefore competition for space in the blockchain) and exchange rates.

> **Comments:**
> **username_3**: Considering 0.01BTC as dust is probably outdated; it likely dates back to when bitcoins were worth less that US$10.  
> **username_4**: Worth noting that the minimum amount counts for all outputs, even change.  The satoshi client is set up to just include the extra small amount as a fee to miners instead of creating change for a small amount.  
> **username_0**: Just a note that I added a major update to this answer today, because it was still getting upvotes 10 years later. Comments above may no longer be valid.  
> **username_2**: Hey username_0, today, Bitcoin Core's dust threshold is 1/10th of what you describe (see my answer). I think the code you are citing is from 2014. Since you just updated your answer, I was wondering whether you might want to point that out about your code snippet.  

---

### Answer by username_1 on 2017-11-25. Score: 13

To understand 'dust' you must understand a few things:

Firstly, a UTXO is an unspent transaction output. This is essentially a piece of bitcoin somewhere on the blockchain that is unspent.

To create a transaction, 1 or more UTXOs are used to form the inputs, and 1 or more UTXOs are "born" in the process. After the transactions are confirmed, the UTXOs that formed the inputs are now just "TXOs" (ie. they've been spent).

To ensure a transaction is confirmed, a fee must be added, that fee is proportional to the overall size of the transaction, which is the number of bytes the transaction takes up on the blockchain. The more UTXOs are used as inputs, the bigger the transaction will be, thus the higher the fee that needs to be paid.

If I have 1 BTC stored in 1 UTXO, it will cost me less to send that than 1 BTC spread across 10 UTXOs of 0.1 BTC, and it will cost me less to send that than 100 UTXOs of 0.01 BTC.

The fees are calculated as satoshis per byte, and the fees fluctuate depending on how busy the network is.

Every UTXO you want to use in a transaction will incur an increase in fee.

Every UTXO takes up a number of bytes in the transaction.

If you multiply fee per byte by the number of bytes taken by the UTXO and it exceeds the value held in the UTXO, then this UTXO is said to be 'dust'.

So a 'dust' UTXO is a UTXO that isn't worth including in a transaction because to do so would incur a fee increase higher than the value of the UTXO.


---

### Answer by username_5 on 2020-09-27. Score: 2

Comment definition of dust from [the actual Bitcoin repo on Github](https://github.com/bitcoin/bitcoin/blob/6d8543504d8c5bde1d12a3c60407dee44d2c8e11/src/policy/policy.cpp) found on file policy.cpp:

```
// "Dust" is defined in terms of dustRelayFee,
// which has units satoshis-per-kilobyte.
// If you'd pay more in fees than the value of the output
// 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
// 182*dustRelayFee/1000 (in satoshis).
// 546 satoshis at the default rate of 3000 sat/kB.
// 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
// 98*dustRelayFee/1000 (in satoshis).
// 294 satoshis at the default rate of 3000 sat/kB.

```


---

### Answer by username_6 on 2015-03-26. Score: 1

Dusty outputs are really small sized outputs from a transaction. Bitcoin transactions are 0 sum so what goes in must come out. When you make a transaction to send some money from your address to another address, any remainder gets sent to a change address that you'll be in control of. Now if that remainder is really small then it becomes "dusty." Then if you try to make another transaction with that dusty unspent output (UTXOs) miners will reject the transaction and it won't get confirmed, ergo the bitcoin won't move.

The bitcoin network depending on the version a miner is running has different definitions of what is considered dusty UTXOs. If this site is correct [version of bitcoind running on nodes](https://getaddr.bitnodes.io/nodes/) the bulk of the network is at 0.10 and 0.9.\*.[For 0.9.3 the dust limit is 546 satoshis](https://bitcoin.org/en/developer-guide#non-standard-transactions). For version .10 I believe it is 546 and earlier versions of 0.9 I believe was higher at 10x around 5k satoshis.


---

### Answer by username_7 on 2013-05-16. Score: 0

Bitcoin dust refers to the thousands and thousands of tiny transactions that some sites flood the network and thus the blockchain with.

> **Comments:**
> **username_2**: I think usually it rather refers to the transaction outputs, not the transactions.  

---

