The discard feerate and the long-term feerate are each estimates of what it’s going to price to spend a UTXO sooner or later, and since Bitcoin Core v24 each default to 10 sat/vB, which is exactly why they get confused. The distinction is which UTXO each costs, and at which stage of constructing the transaction. The discard feerate governs a single change output; the long-term feerate governs enter choice.
The discard feerate (-discardfee, DEFAULT_DISCARD_FEE = 10 sat/vB, added in PR #10817) solutions one query: as soon as a variety leaves some leftover worth, is that leftover value turning into change, or ought to it simply go to the price? A change output prices you twice, as soon as to create on occasion to spend later, and the discard charge costs that future spend. If the change can be mud at that charge, that means it might price extra to redeem than it is value, Core drops it into the price slightly than creating an output you’d by no means economically spend. In Department and Certain that is the cost_of_change window, discard_feerate.GetFee(change_spend_size) + effective_feerate.GetFee(change_output_size), inside which giving the surplus to price beats making change. Two bounds apply from the choice’s personal assist textual content: the efficient charge is floored by the mud relay price and capped by the longest-target price estimate, so a really excessive -discardfee cannot discard arbitrarily giant change.
The long-term feerate (-consolidatefeerate, default 10 sat/vB) lives solely contained in the waste metric that scores candidate enter units, and it represents the feerate at which you would be content material to consolidate UTXOs. Waste consists of, per enter, input_size × (current_feerate − long_term_feerate), and the signal of that distinction is the complete mechanism. When the present feerate sits above the long-term charge, every further enter provides constructive waste, so the pockets prefers fewer inputs and avoids overpaying to maneuver cash whereas charges are excessive. When the present feerate sits under it, every further enter provides destructive waste, so the pockets prefers extra inputs and consolidates cheaply now, since spending them later is anticipated to price extra. It by no means modifications the price you really pay on this transaction; it solely decides which legitimate enter set wins. Earlier than PR #22009 (v24) this was the dynamic 1008-block estimateSmartFee worth, swapped for a static configurable charge as a result of the week-out estimate usually sat close to the ground and skewed choice towards fixed consolidation.
So each encode “what’s going to it price to spend a coin later,” each dwell within the coin-selection and alter equipment, and each default to 10 sat/vB, however they act on completely different cash at completely different moments. The discard feerate acts on the change output and whether or not it survives, utilized after a variety is made to trim uneconomical change. The long-term feerate acts on the inputs and what number of to select, utilized throughout choice to match complete enter units.
The discard feerate and the long-term feerate are each estimates of what it’s going to price to spend a UTXO sooner or later, and since Bitcoin Core v24 each default to 10 sat/vB, which is exactly why they get confused. The distinction is which UTXO each costs, and at which stage of constructing the transaction. The discard feerate governs a single change output; the long-term feerate governs enter choice.
The discard feerate (-discardfee, DEFAULT_DISCARD_FEE = 10 sat/vB, added in PR #10817) solutions one query: as soon as a variety leaves some leftover worth, is that leftover value turning into change, or ought to it simply go to the price? A change output prices you twice, as soon as to create on occasion to spend later, and the discard charge costs that future spend. If the change can be mud at that charge, that means it might price extra to redeem than it is value, Core drops it into the price slightly than creating an output you’d by no means economically spend. In Department and Certain that is the cost_of_change window, discard_feerate.GetFee(change_spend_size) + effective_feerate.GetFee(change_output_size), inside which giving the surplus to price beats making change. Two bounds apply from the choice’s personal assist textual content: the efficient charge is floored by the mud relay price and capped by the longest-target price estimate, so a really excessive -discardfee cannot discard arbitrarily giant change.
The long-term feerate (-consolidatefeerate, default 10 sat/vB) lives solely contained in the waste metric that scores candidate enter units, and it represents the feerate at which you would be content material to consolidate UTXOs. Waste consists of, per enter, input_size × (current_feerate − long_term_feerate), and the signal of that distinction is the complete mechanism. When the present feerate sits above the long-term charge, every further enter provides constructive waste, so the pockets prefers fewer inputs and avoids overpaying to maneuver cash whereas charges are excessive. When the present feerate sits under it, every further enter provides destructive waste, so the pockets prefers extra inputs and consolidates cheaply now, since spending them later is anticipated to price extra. It by no means modifications the price you really pay on this transaction; it solely decides which legitimate enter set wins. Earlier than PR #22009 (v24) this was the dynamic 1008-block estimateSmartFee worth, swapped for a static configurable charge as a result of the week-out estimate usually sat close to the ground and skewed choice towards fixed consolidation.
So each encode “what’s going to it price to spend a coin later,” each dwell within the coin-selection and alter equipment, and each default to 10 sat/vB, however they act on completely different cash at completely different moments. The discard feerate acts on the change output and whether or not it survives, utilized after a variety is made to trim uneconomical change. The long-term feerate acts on the inputs and what number of to select, utilized throughout choice to match complete enter units.

















