Dust amount detected in one output

Dust refers to a small amount of coins within a UTXO (Unspent Transaction Output) that is smaller than the transaction fees required to transfer it. Such amounts become unspendable due to fee limitations.

For UTXO-based chains like Bitcoin, Dogecoin, Litecoin, and similar, small UTXOs can accumulate (often as change from earlier payments). Combined with higher transaction fees, this can result in balances that cannot be spent.

Error example:

{
  "statusCode":403,
  "errorCode":"###.blockchain.broadcast.error",
  "message":"Unable to broadcast transaction",
  "cause":"dust (code 64)",
  "dashboardLog":"https://dashboard.tatum.io/logs?id=###"
}

Why do I get a Dust Error?

  • Insufficient UTXO Amounts: The value of a UTXO is smaller than the transaction fee required to spend it.
  • Dust Outputs: A transaction creates a UTXO so small that it’s classified as Dust by the blockchain and rejected.
  • All UTXOs are Dust: No spendable funds exist at the current fee level.

Example Scenario:

A Bitcoin address contains 0.0087 BTC. In reality, consisting of x3 UTXOs of:

  1. 0.0080 BTC
  2. 0.0002 BTC
  3. 0.0005 BTC

Assuming a transaction fee of 0.00055 BTC for each UTXO:

  • 0.0002 BTC and 0.0005 BTC are Dust and cannot be spent.
  • Attempting to send 0.0087 BTC triggers a Dust Error.
  • Sending only 0.0080 BTC would succeed.

Steps to Resolve a Dust Error

Here’s what you can do to address the issue and successfully send funds:

  1. Check Your UTXO Balances
  2. Adjust the Transaction Amount
    • Avoid including UTXOs classified as Dust.
    • Manually set the amount to only include spendable UTXOs.
  3. Increase the Transaction Fee
    • Raise the fee level to cover Dust UTXOs if absolutely necessary.
    • Ensure the higher fee doesn’t exceed the total transaction value.
  4. Consolidate UTXOs
    • Send all your UTXOs to a new address in your wallet, creating a single, larger UTXO.
    • Be aware that this may incur higher fees initially but resolves future Dust issues.

📘

See Bitcoin code for Dust threshold via [GetDustThreshold] at the following link.

Dust Practical Thresholds

Bitcoin

For Bitcoin mainnet, the dust threshold calculation follows the same formula:

Dust Threshold = 3 × InputSize × Minimum Relay Fee Per Byte

  • Input size: A typical Bitcoin transaction input size is around 180 bytes.
  • Minimum relay fee per byte: The default minimum relay fee is typically 1 satoshi/byte, which is 0.00000001 BTC/byte.

Plugging these values into the formula: Dust Threshold = 3 × 180 × 0.00000001 ≈ 0.0000054 BTC

Practical Implication:

  • Any output smaller than approximately 0.0000054 BTC (or 540 satoshis) will be flagged as "dust" by nodes in the network and rejected for processing.

Dogecoin

In the Dogecoin mainnet, the amount flagged as "dust" is typically based on a formula used in many Bitcoin-derived cryptocurrencies. The dust threshold is calculated using the formula:

Dust Threshold = 3 × InputSize × Minimum Relay Fee Per Byte

  • Input size: For a typical transaction input, the size is around 148 bytes.
  • Minimum relay fee per byte: In Dogecoin, the default minimum relay fee is 1 DOGE/kB, or 0.001 DOGE/byte.

Plugging these values into the formula: Dust Threshold = 3 × 148 × 0.001 ≈ 0.444 DOGE

Practical Implication:

  • Any output smaller than approximately 0.444 DOGE will be flagged as "dust" by nodes in the network and rejected for processing.

📘

Dogecoin Fee Recommendations & Dust: Official Github page