How to safely spend/burn dust?

How to safely spend/burn dust?

Manage alerts

Loading saved threads...

ignacio porte · External communityPost link
External question — Bitcoin Stack Exchange Author: ignacio porte Original post: https://bitcoin.stackexchange.com/questions/125702 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. I am making a tool to safely remove dust UTXOs from a wallet in a privacy-preserving way. My main goals are: Never mix these dust inputs with my other UTXOs, to avoid linking my addresses. Ideally, remove all dust completely, so I'm not left with new dust afterward. Create valid, standard transactions accepted by Bitcoin Core and the network. So far, I have this approach working in regtest mode: Send all accumulated dust to a burn address Idea: Create a transaction with all dust UTXOs as inputs and a single output sending all value directly to a known burn address (e.g., "1BitcoinEaterAddressDontSendf59kuE" ). Issue: If the total dust amount is below the standard amount/fee threshold, this transaction will be rejected. My question How can I safely remove dust UTXOs completely without creating new dust outputs or mixing these dust inputs with my regular funds? Is there a recommended best practice or standard technique for this situation other than simply leaving the dust unspent?
Quote
Report
Murch · External communityPost link
External answer — Bitcoin Stack Exchange Author: Murch Original post: https://bitcoin.stackexchange.com/a/125850 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. What you are trying to do does not seem to be possible. A standard transaction pays at least a feerate of 1 sat/vB ( minRelayTxFee ). Many low-value UTXOs have too little value to pay for themselves even at the lowest standard feerate. Even when a low-value UTXO has enough value to pay for the input that spends it, often it will not have enough value to pay for the whole transaction. This means that another UTXO needs to provide additional funds to raise the transaction to the minimum feerate. It seems to me that per definition, you cannot create standard transactions using only the UTXOs that you want to get rid off. Outputs with spendable scripts themselves must receive a larger than dust amount in order for a transaction to be standard. If you pay an address such as 1BitcoinEater , you would need to pony up for the additional amount to make the transaction standard. Additionally, these UTXOs would live in the UTXO set forever. You can avoid those problems by burning into an OP_RETURN output which can also have a smaller output script and therefore make the entire transaction lighter. Some of your dust UTXOs may be valuable enough that they can fund such a transaction by themselves. Adding more UTXOs to fund the burn transaction increases your cost and reduces your privacy. You may be able to mitigate both: if multiple owners of UTXOs that can pay for themselves collaborate to create one transaction together that pays all funds to an OP_RETURN output, the additional value of the UTXOs in sum may be big enough to pay for the transaction overhead, and the multiple co-senders would at least confuse the common-input-ownership heuristic . Organizing such a transaction itself may introduce new privacy leaks unless conducted carefully. For the lowest-value UTXOs it may be cheaper and easier to instruct your wallet to ignore them and forever leave them unspent. Update in 2026 Bitcoin Core’s minimum feerate has shifted to 0.1 s/vB, and we now frequently see transactions of less than 1 s/vB get confirmed. This reduces the minimum amount necessary to make a viable transaction by a factor 10 compared to what I was describing above. BIP451: Dust UTXO Disposal Protocol proposes a set of best practices how to burn funds. It seems directly applicable to your question, so you might want to check it out.
Quote
Report

Post Reply

Quoted from Forex.com.bd-Editorial External answer — Bitcoin Stack Exchange Author: Murch Source score (net votes, not local likes): 0 Original post: https://bitcoin.stackexchange.com/a/125850 License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/ Adaptation: HTML converted to plain text; contact email addresses removed. What you are trying to do does not seem to be possible. A standard transaction pays at least a feerate of 1 sat/vB ( minRelayTxFee ). Many low-value UTXOs have too little value to pay for themselves even at the lowest standard feerate. Even when a low-value UTXO has enough value to pay for the input that spends it, often it will not have enough value to pay for the whole transaction. This means that another UTXO needs to provide additional funds to raise the transaction to the minimum feerate. It seems to me that per definition, you cannot create standard transactions using only the UTXOs that you want to get rid off. Outputs with spendable scripts themselves must receive a larger than dust amount in order for a transaction to be standard. If you pay an address such as 1BitcoinEater , you would need to pony up for the additional amount to make the transaction standard. Additionally, these UTXOs would live in the UTXO set forever. You can avoid those problems by burning into an OP_RETURN output which can also have a smaller output script and therefore make the entire transaction lighter. Some of your dust UTXOs may be valuable enough that they can fund such a transaction by themselves. Adding more UTXOs to fund the burn transaction increases your cost and reduces your privacy. You may be able to mitigate both: if multiple owners of UTXOs that can pay for themselves collaborate to create one transaction together that pays all funds to an OP_RETURN output, the additional value of the UTXOs in sum may be big enough to pay for the transaction overhead, and the multiple co-senders would at least confuse the common-input-ownership heuristic . Organizing such a transaction itself may introduce new privacy leaks unless conducted carefully. For the lowest-value UTXOs it may be cheaper and easier to instruct your wallet to ignore them and forever leave them unspent. Update in 2026 Bitcoin Core’s minimum feerate has shifted to 0.1 s/vB, and we now frequently see transactions of less than 1 s/vB get confirmed. This reduces the minimum amount necessary to make a viable transaction by a factor 10 compared to what I was describing above. BIP451: Dust UTXO Disposal Protocol proposes a set of best practices how to burn funds. It seems directly applicable to your question, so you might want to check it out.

Cancel quote

Checking account access…