Unfortunately, the advice ChatGPT is giving is wrong (as usual).
Bitcoin Core uses multiple coin selection algorithms that each produce one input set candidate and then picks one input set from these according to the waste metric.
The consolidatefeerate
setting refers to the feerate above which Bitcoin Core considers the feerate to be “high” and below which Bitcoin Core considers the feerate “low”. At high feerates, Bitcoin Core will prefer the lightest input set from the candidates the coin selection algorithms generate, while at low feerates Bitcoin Core will prefer the heaviest input set to aid in consolidating funds while fees are low. By default, the wallet uses consolidatory behavior up to 10 ṩ/vB.
It sounds like you may want to set consolidatefeerate=0.00001
(1/10th of the default).
Bitcoin Core’s coin selection does not always find a minimal input set, so it may use multiple inputs if that was the “lightest” input set that was generated by the multiple coin selection algorithms. This happens especially if your wallet contains a lot of UTXOs that are smaller than the amount you’re sending.
There are two improvements in the v24.0.1 release that could help with the situation:
- #24494 randomizes and lowers the minimum change amount, so the weight of the input set that gets selected should generally be lower
- #24584 made the coin selection run parallel separately for all different output types in the wallet. If you use different output types, it would cause more input set candidates to be generated, which should improve the outcome of the above described choice among them
I would recommend that you try upgrading to the v24.0.1 release, it may help a bit. Meanwhile, you could try use coin control to manually pick your UTXOs, or try building multiple transactions and inspecting whether they are acceptable to you, before submitting them to the network.
I have some thoughts on how that coin selection could be further improved, e.g. we should probably add another coin selection algorithm that generates a minimized input set at very high feerates (e.g. 50+ ṩ/vB). Unfortunately, nobody has gotten around to adding that change yet.
It would be helpful if you could submit an issue to the Bitcoin Core issue tracker that describes your experience.