Policy Dust and Economic Spendability Are Different Tests
A Bitcoin UTXO is a specific output from an earlier transaction that has not yet been spent. Its value is fixed in whole satoshis, and its locking script determines what kind of input will be needed later. Two questions often arise when that value is small: whether a new output of that size would be treated as Dust by Bitcoin Core policy, and whether an already existing UTXO is still worth including in a transaction at the fee rate a wallet is considering. Those questions use different sizes, different fee-rate inputs, and different decision boundaries.
Policy Dust is an output-creation rule used in standard transaction relay. Bitcoin Core estimates a size for the output and a conventional future spend, then applies the node's Dust relay fee. If the proposed output value is lower than the resulting threshold, Bitcoin Core classifies that output as Dust for this policy check. An output exactly equal to the threshold is not Dust because the comparison is strictly lower than, not lower than or equal to, the threshold. A node operator can configure policy differently, so the displayed default is a reference to Bitcoin Core's default rather than a universal consensus law.
Economic spendability starts with an output that already exists. The relevant question is whether its value exceeds the estimated marginal fee added by including its input in a transaction. That estimate uses the input's reviewed Weight and the transaction fee rate in sat/vB, not the Dust relay fee in sat/kvB. A UTXO can therefore be above the default Dust threshold yet cost more to spend during a high-fee period. It can also be below a selected policy threshold yet remain economically positive at a low fee rate if it already exists and a wallet can spend it.
The two result panels remain independent for this reason. "Below policy Dust threshold" describes the creation of a comparable output under the selected policy. "Economically positive" describes the modeled contribution of the existing input at the selected transaction fee rate. Neither result proves that a wallet will select the UTXO, that a transaction will relay, or that spending it is sensible after privacy and destination considerations. The page provides a controlled comparison, not an automatic recommendation.
How the Bitcoin Core Dust Threshold Is Calculated
Bitcoin Core's GetDustThreshold function begins with the serialized size of the transaction output. For a typical P2PKH output that size is 34 bytes. The policy calculation then adds a conventional 148-vbyte non-witness input estimate, producing a 182-vbyte policy size. At the default Dust relay fee of 3000 sat/kvB, the fee evaluation produces 546 sats. IsDust returns true only when the output value is below that amount. The threshold is part of local standardness policy used for relay and mining selection; it is not a rule that makes a lower output cryptographically invalid inside a block.
Native witness programs use a different policy spend estimate. Bitcoin Core adds 67 vbytes to the serialized output size, reflecting an outpoint, sequence, script-length field, discounted P2WPKH-style satisfaction estimate, and related input fields. A 31-byte P2WPKH output therefore uses 98 policy vbytes and reaches 294 sats at the default Dust relay fee. A 43-byte P2TR output uses 110 policy vbytes and reaches 330 sats. Bitcoin Core deliberately retains the P2WPKH-style satisfaction estimate for Taproot policy instead of reducing the threshold to the smaller key-path signature profile.
Nested SegWit needs careful labeling. A P2SH-P2WPKH output is itself a P2SH scriptPubKey, so it is not recognized as a native witness program by this Dust-policy branch. Its serialized output is 32 bytes and the policy adds the 148-vbyte non-witness estimate, giving 180 policy vbytes and a 540-sat default threshold. That policy estimate is separate from the smaller reviewed Weight of a real nested-SegWit input. The calculator keeps both values: 540 sats for default Dust classification, and the nested input Weight for economic spendability.
Advanced Mode exposes the Dust relay fee as whole satoshis per virtual kilobyte. The default is 3000 sat/kvB, which is numerically equivalent to 3 sat/vB but belongs to a different policy setting than the transaction fee-rate control. The engine multiplies the integer policy size by the selected sat/kvB amount, divides by 1000, and follows the current upward fee evaluation. Changing that field answers how the output would be classified under another selected policy; it does not change the mempool recommendation or the economic input cost.
| Profile | Policy size | Default threshold | Why |
|---|---|---|---|
| P2PKH | 34 + 148 = 182 vB | 546 sats | Non-witness output and policy spend estimate |
| P2SH-P2WPKH | 32 + 148 = 180 vB | 540 sats | P2SH output is not a native witness program |
| P2WPKH | 31 + 67 = 98 vB | 294 sats | Native witness-program policy branch |
| P2TR | 43 + 67 = 110 vB | 330 sats | Witness policy keeps the P2WPKH spend estimate |
How Marginal UTXO Spend Cost Is Estimated
A wallet pays for a complete transaction, but one-UTXO analysis focuses on the incremental Weight contributed by the selected input. Legacy bytes count four weight units each. Witness bytes count one weight unit each. The reviewed P2PKH profile is 148 base bytes, or 592 WU and 148 rational vbytes. P2SH-P2WPKH is modeled as 64 base bytes plus 109 witness bytes, or 365 WU and 91.25 rational vbytes. P2WPKH is 41 base bytes plus 109 witness bytes, or 273 WU and 68.25 rational vbytes. P2TR key-path is 41 base bytes plus 66 witness bytes, or 230 WU and 57.5 rational vbytes.
The economic calculation multiplies the exact marginal Weight by the selected sat/vB rate and divides by four. Only the final fee is rounded upward to a whole satoshi. For example, a 273-WU P2WPKH input at 10 sat/vB has a rational cost of 682.5 sats and a displayed marginal cost of 683 sats. A 500-sat UTXO is economically negative in that scenario even though 500 sats is above the default 294-sat P2WPKH Dust threshold. At 2 sat/vB, the same input costs 137 sats after rounding and leaves 363 sats of modeled economic value.
Marginal Weight is not the same as the virtual size of a complete one-input transaction. A full transaction also contains version and locktime fields, CompactSize counts, outputs, and for witness transactions the marker and flag. Some shared overhead can change at count boundaries, and a mixed transaction can include empty witness stack markers for legacy inputs. The marginal model intentionally excludes those shared bytes because it asks what this one input contributes, not what the entire transaction costs. Use the Bitcoin Transaction Fee Calculator when the user task is pricing the full transaction.
Actual signed input size can vary. ECDSA signatures are DER encoded and can differ by a byte; multisig and arbitrary scripts can differ far more. Taproot script-path spends can include control blocks, scripts, and several witness elements, so the P2TR key-path profile does not represent them. Advanced Mode can accept a measured custom input Weight when the user already has a reliable figure. That custom Weight changes only the economic test. It cannot rewrite how Bitcoin Core evaluates the selected output type for Dust policy.
Read the Remaining Value and Break-Even Fee Rate
Remaining economic value is the UTXO value minus the rounded marginal input cost. A positive number means that the input contributes more satoshis than this isolated cost model assigns to including it. Zero is the exact whole-satoshi break-even outcome. A negative number means the modeled input cost is greater than the UTXO value. The result does not subtract the output side of the payment, shared transaction overhead, service charges, exchange fees, or any cost of creating a replacement output, so it should not be described as net transaction proceeds.
The percentage consumed divides the marginal input cost by the UTXO value. It gives scale to a result that might otherwise look harmless. Spending 150 sats of input fee from a 10,000-sat UTXO consumes 1.5% of that value; spending the same 150 sats from a 200-sat UTXO consumes 75%. A value over 100% indicates an economically negative result in this model. A zero-value UTXO has no meaningful percentage denominator, so the calculator reports that the percentage is not defined rather than displaying an invented infinite or zero percentage.
The continuous break-even fee rate is computed before whole-satoshi fee rounding as UTXO value multiplied by four and divided by the marginal input Weight. For a 500-sat P2WPKH UTXO, 500 x 4 / 273 is approximately 7.32600732 sat/vB. At that continuous rate, the rational input cost equals 500 sats. Because the actual displayed cost is rounded upward, a rate just below that figure can already round to 500 sats. The disclosure shows both the continuous threshold and the rounded current result so the user can see why a boundary may not behave like a simple rounded decimal comparison.
Break-even is not a prediction that fees will reach or avoid a particular rate. Live targets describe current mempool.space recommendations, while manual mode tests a chosen scenario. A UTXO that is negative at the fastest target may be positive at an Economy target or at a later time. Waiting may also have risks or opportunity costs that the tool cannot model. The result is most useful as one input to coin control: it shows how sensitive this single UTXO is to fee pressure without turning that sensitivity into timing advice.
Worked Dust and Spendability Outcomes
A 200-sat P2WPKH UTXO is below the default 294-sat Dust threshold. At 1 sat/vB, its 273-WU marginal input costs 69 sats after upward rounding, leaving 131 sats. The output is therefore below the selected creation-policy threshold but economically positive as an existing UTXO under the modeled fee rate. These statements can coexist because the policy calculation uses 98 policy vbytes at 3000 sat/kvB, while the economic calculation uses 273 WU at 1 sat/vB.
The same 200-sat P2WPKH UTXO becomes economically negative at 10 sat/vB. Its marginal input cost is 683 sats, leaving minus 483 sats. Policy status has not changed because the UTXO value, output type, and Dust relay fee are unchanged. Only the economic fee-rate assumption changed. This is why a wallet may display an already received small output yet avoid selecting it during expensive fee conditions. The existence of the output and its current usefulness are separate facts.
A 600-sat P2PKH UTXO is above the default 546-sat Dust threshold. At 5 sat/vB, its 592-WU input has a marginal cost of 740 sats, leaving minus 140 sats. This is the common "above Dust but uneconomical" case. Calling 740 sats the P2PKH Dust threshold would be wrong: 740 is the current modeled marginal input cost at 5 sat/vB; 546 is the selected Bitcoin Core policy threshold at 3000 sat/kvB.
A 1000-sat P2TR key-path UTXO is above the default 330-sat policy threshold. At 5 sat/vB, its 230-WU marginal cost is 288 sats after rounding, leaving 712 sats. Both classifications are favorable under the selected assumptions, but that still does not certify the destination, change, privacy, full transaction fee, or wallet policy. The table below summarizes what changed in each case and which result must remain independent.
| Example | Policy result | Economic result | Interpretation |
|---|---|---|---|
| 200-sat P2WPKH at 1 sat/vB | Below 294-sat threshold | 69-sat cost; positive | Existing UTXO can be positive although creating it is Dust under default policy |
| 200-sat P2WPKH at 10 sat/vB | Below 294-sat threshold | 683-sat cost; negative | Both selected tests are unfavorable for different reasons |
| 600-sat P2PKH at 5 sat/vB | Above 546-sat threshold | 740-sat cost; negative | Not policy Dust, but uneconomical in the marginal model |
| 1000-sat P2TR at 5 sat/vB | Above 330-sat threshold | 288-sat cost; positive | Both tests are favorable under the selected assumptions |
What the Calculator Cannot Decide for a Wallet
Bitcoin Core policy is configurable and evolves. A node can use a different Dust relay fee, and peers, miners, wallet software, and services can apply their own acceptance rules. Standardness is not identical to consensus validity. A transaction containing a below-threshold output may fail ordinary relay under the selected policy without being inherently impossible in every block-valid context. The calculator describes the selected Bitcoin Core policy model; it does not query every peer, mining pool, exchange, or wallet that could handle the transaction.
Wallet coin selection evaluates more than one input in isolation. It may compare effective value, avoid mixing labels, preserve change quality, prefer confirmed coins, account for long-term fee rates, or exclude an output because of privacy settings. Some wallets consider the cost of creating and later spending change. Others apply minimum output amounts or refuse certain script combinations. This page intentionally does not imitate those complete selection algorithms. It supplies one auditable marginal cost and leaves the wallet decision with the user and wallet software.
An economically positive UTXO may still be undesirable to spend with unrelated coins because common-input ownership heuristics can link their histories. Conversely, leaving a UTXO unused indefinitely may complicate backup, accounting, or future high-fee spending. The calculator does not assign a monetary value to privacy, urgency, operational simplicity, or future optionality. For a many-UTXO strategy question, use the Bitcoin UTXO Consolidation Calculator, which compares consolidation now with a later direct spend rather than judging one UTXO.
No address, transaction ID, xpub, descriptor, seed phrase, or private key belongs in this tool. The value and script profile can be entered without exposing wallet identifiers. If the script type or input Weight is uncertain, inspect it inside trusted wallet software or a local transaction workflow rather than pasting sensitive wallet data into a website. Before signing, review the actual input list, destination, change, virtual size, fee, and fee rate shown by the wallet. Those values supersede this educational marginal estimate.
Use the Result in a Practical UTXO Review
Start with the exact whole-satoshi value displayed by the wallet. Select the script profile that describes the UTXO being spent, not merely the current receive-address default. Choose a live target when the question concerns present conditions, or manual mode when testing a specific wallet proposal. Leave the Dust relay fee at 3000 sat/kvB unless the goal is explicitly to study another policy. The default setting makes the familiar Bitcoin Core thresholds comparable across script types; it does not claim that every node has identical configuration.
Read the Policy Dust panel first as an output-creation reference. If the value is lower than the threshold, a new output of the same type and value is Dust under the selected policy. Then read the Economic Spendability panel as an existing-input estimate. Compare the marginal cost, remaining value, percentage consumed, and break-even fee rate. A mixed result is not an error. It is often the most informative outcome because it reveals which of the two user questions is actually creating concern.
Open Calculation details when the result needs to be checked or documented. The policy line exposes the policy size, Dust relay fee, division by 1000, and rounded threshold. The economic line exposes input Weight, rational vbytes, transaction fee rate, and rounded marginal cost. The remaining-value and break-even lines make the subtraction and continuous rate visible. Copy result creates a concise text record, but it does not include wallet data and should not be treated as a transaction authorization or signing instruction.
Use the next tool that matches the next task. Convert BTC and sat denominations with the Satoshi Converter. Estimate all inputs, outputs, and shared transaction overhead with the full Bitcoin fee calculator. Compare multiple UTXOs and future fee scenarios with the consolidation calculator. For protocol background, read How Bitcoin Transaction Fees Work and Bitcoin Address Types Explained. Keeping these tasks separate prevents one convenient number from being stretched into a decision it was never designed to make.
- Enter one UTXO value
- Select its output and spend profile
- Choose a live or manual transaction fee rate
- Read policy Dust and economic spendability separately
- Verify the wallet's actual transaction before signing
Bitcoin Dust Calculator FAQ
What is the Bitcoin Dust threshold?
It is the output value below which Bitcoin Core classifies a standard spendable output as Dust under the selected Dust relay fee. At the default 3000 sat/kvB, common thresholds include 546 sats for P2PKH, 540 for P2SH, 294 for P2WPKH, and 330 for P2TR.
Is an output exactly equal to the Dust threshold Dust?
No. Bitcoin Core IsDust uses a strict less-than comparison. An output equal to the calculated threshold is not Dust under that check, although other wallet or relay policies can still matter.
Can a UTXO be above Dust but uneconomical to spend?
Yes. Policy Dust uses the selected Dust relay fee and an output-plus-conventional-spend size. Economic spendability uses the actual reviewed input Weight and current or manual sat/vB rate. A high fee rate can make an above-Dust UTXO economically negative.
Can a below-Dust UTXO still have positive economic value?
Yes, if it already exists and its value exceeds the marginal input cost at the selected transaction fee rate. That does not mean a new output of the same size would relay under the selected policy.
Why is the Taproot Dust threshold 330 sats in this model?
Bitcoin Core applies its retained 67-vbyte witness-program spend estimate to the 43-byte P2TR output for Dust policy. The economic panel separately uses the smaller reviewed P2TR key-path input Weight.
What is the UTXO break-even fee rate?
It is the continuous sat/vB rate at which UTXO value equals marginal input Weight divided by four times fee rate. The displayed whole-satoshi input cost rounds upward, so the exact integer boundary can occur slightly below the displayed continuous rate.
Does this calculator include the full Bitcoin transaction fee?
No. It models one input's marginal Weight. A full fee also includes shared transaction fields, outputs, count encodings, and possible witness overhead. Use the Bitcoin Transaction Fee Calculator for the complete structure.
Does the calculator connect to my wallet or find UTXOs?
No. It accepts only a whole-satoshi value, a reviewed script profile, and fee assumptions. It does not request addresses, transaction IDs, xpubs, descriptors, seed phrases, or private keys.
Methodology and Sources
Policy Dust mirrors Bitcoin Core GetDustThreshold for the four supported output profiles. Economic spendability reuses the reviewed marginal input profiles from the shared Bitcoin Weight engine. The two calculations remain independent in code and in the interface.
- Policy size equals serialized output size plus Bitcoin Core's conventional non-witness or witness-program spend estimate.
- The default Dust relay fee is 3000 sat/kvB and can be changed only in Advanced Mode.
- Marginal input cost equals exact input Weight divided by four, multiplied by the selected sat/vB rate, then rounded upward to a whole satoshi.
- Remaining economic value equals UTXO value minus rounded marginal input cost; continuous break-even equals value multiplied by four divided by input Weight.
- Live transaction fee recommendations reuse the validated server cache and last-known-good behavior already used by the Bitcoin Transaction Fee Calculator.
Primary references
- Bitcoin Core policy.cpp Defines GetDustThreshold and the strict IsDust comparison.
- Bitcoin Core policy.h Defines the default 3000 sat/kvB Dust relay fee.
- Bitcoin Core feerate.cpp Defines current fee evaluation and upward rounding behavior.
- BIP 141: Segregated Witness Defines transaction Weight and the witness discount used for marginal input profiles.
- Bitcoin Developer Transaction Reference Documents Bitcoin transaction inputs, outputs, and serialized fields.
- mempool.space REST API Documents the current fee-recommendation provider reused by live mode.
Reviewed by the BitcoinToolkit Editorial Team Dust policy and spendability logic last tested