Background
Whenever the Bitcoin network gets more congested, fees get higher and higher. Most wallets now use "dynamic fees", which means they start competing with each other for fast confirmations. This results is fees spiraling upwards. Not so long ago, more than 600 Satoshis/byte was needed to have any chance at a fast confirmation.
The result: this board filled up with topics like: "my transaction got stuck for 2 weeks, help me". At the moment, these topics don't exist, which is the reason I open this "opposite" topic.
Example
18 days ago, someone made this 4909 bytes transaction with 33 inputs and 510 Satoshis/byte fee. After paying fees, his 0.033BTC turned into only 0.0079539BTC. If he would make the same transaction now with 20 Satoshis/byte fee, he would have saved 0.024BTC. Instead of just 0.0079539BTC, he would have ended up with 4 times more!
Opportunity
Since about a week, fees are quite low again. For many months now, even transactions with 1 Satoshi/byte are likely to get confirmed within an hour.
If you've been collecting faucets in the past, you most likely have many inputs around 0.000xBTC. A few weeks ago, anything under 0.001BTC wasn't even enough to pay for the fee. If you set a very low fee now, you can consolidate inputs as low as just 2000 Satoshis (0.00002BTC).
It's good for everyone
If you make a big transaction with high fees when the network is congested, you take up a lot of scarce block space. This makes the congestion even worse.
By making a big transaction when the network isn't congested, you're prepared to be able to make a much smaller transaction once the network is congested again, without adding much to the congestion.
Consolidate small inputs
If you have many small inputs, now is the perfect time to consolidate them into one new input! If you're not in a hurry to get a confirmation, you can set a very low fee and just wait. Once it's confirmed, your funds can be send in a much smaller transaction, which means you'll safe a lot on fees if you want to make a transaction when fees are high again. If you have enough small inputs, you can safe up to 95% or more on fees!
How
Now the tricky part: it depends on your wallet! The easy way would be to just send your entire balance to a new address in your own wallet. Make sure to manually set the fee!
I prefer to "Enable coin control" in Bitcoin Core, you can do this in Electrum too. Select the inputs you want to use, and leave out very small dust inputs (say 0.00001BTC, it would still cost more in fees than it's worth). Then simply send all selected inputs to a new address of your own.
If you have many different inputs, I suggest to consolidate them in multiple steps. Don't create a 100,000 bytes transaction with 500 inputs, but instead create many transactions with 20-ish inputs.
If your wallet doesn't allow you to set your own fee, and/or to use coin control, you can export your private keys and import them into a wallet that does support it. This, however, is something to discuss in another topic.
Privacy
Consolidating your inputs links them together on the blockchain. This wouldn't be any different when you use the same funds in any other transaction, but you should consider this before doing it.
SegWit
User Wind_FURY found a comprehensive overview of Techniques to reduce transaction fees, including the use of SegWit addresses.
Fee estimators
- https://jochen-hoenicke.de/queue/#0,1w (thanks pooya87)
- https://coinb.in/#fees This site lets you manually select inputs and outputs to see the transaction size (in bytes)
- https://btc.com/stats/unconfirmed-tx
- https://estimatefee.com (recommends a fee estimate after you set a number of blocks to confirm within (Update April 6, 2019: the recommendation from this site is 3 times higher than what my Bitcoin Core recommends) -- thanks lite)
No spam
All my threads are now self-moderated to stop signature spam. I will remove all irrelevant posts. If you quote the entire OP, your entry will be deleted.
Once in a while I'll summarize posts and clean up this thread.
Disclaimer
Use this information at your own risk. At all times, think before each action, especially when you're dealing with private keys. When in doubt, don't do it!
I'm human, I make mistakes. If something is incorrect, please let me know.