Constantly, I see transaction which overpay 2-4x more than necessary in fees. This is a big problem. Everyday, many bitcoins are lost due to overpaid transaction fees. By the end of this article, you will save a lot on Bitcoin transaction fees, Bitcoin Cash and Litecoin transaction fees.
Wallets use algorithms which routinely overpay transaction fees. Wallet developers overestimate fees, because otherwise a transaction might become “stuck.” To avoid complaints and support tickets, developers and businesses pay too much for transaction fees. In response, transaction fees for all users rise, as algorithms attempt to outbid each other.
Stuck transactions will simply take longer to confirm. A future article will explain how to confirm, or dislodge, a stuck transaction.
Note: This article calculates transaction fees in “Satoshis per byte” (sat/byte). A Satoshi is 1/100,000,000 of a bitcoin. A byte is 1/1,000 of a kilobyte of data. Some wallets calculate fees on a per kilobyte basis, using milibits, or absolute values.
For ballpark figures, 20 sat/byte is a low fee, 100 sat/byte is a medium fee, 250 sat/byte is a high fee. During peak congestion, fees will reach 500-1,000+ sat/byte. These times are very rare.
The smallest legacy transactions are about 225 bytes. Transactions with multiple inputs and outputs can be much larger. On the other hand, a Segwit transaction can be less than 200 bytes, for fee calculation purposes only. (The whole Segwit transaction is actually larger. For a fuller explanation, see Section 5 below.)
Note: Since transaction fees are measured and paid in bitcoin, the fee in dollars depends on the price of bitcoin as well.
How to calculate bitcoin transaction fees?
Assume a 250 byte transaction, at a 100 sat/byte transaction fee, and a $15,000 btc price. Here is the step-by-step calculation:
250 bytes x 100 sat/byte = 25,000 satoshis
There are 100,000,000 satoshis in a bitcoin. So to convert the fee into bitcoins:
25,000 satoshis / 100,000,000 sat/bitcoin = 0.00025 BTC
Multiply by the bitcoin market price
0.00025 BTC x $15,000/BTC = $3.75
The complete formula is:
X bytes * Y sat/byte / 100,000,000 * $ Z btc price = tx fee
Once you understand how fees are calculated, you can convert the above units to suit your needs:
0.001 megabytes = 1 kilobyte = 1,000 bytes
1 bitcoin = 1,000 mBTC = 1,000,000 uBTC (“Bits”) = 100,000,000 Satoshis
Your selected fee per byte is the easiest variable to control. Thus, this article will focus on how to select the best transaction fee for your needs.
How to pay less Bitcoin transaction fees? There are a few ways:
1. Download a wallet that gives you more control over fees.
Different wallets allow users different levels of control over fees. The good wallets give users two choices. The better wallets give four choices. The best wallets allow users to set custom fees.
The more control you have over fees, the better you can tailor your fee to fit your particular need. Some transactions are urgent. Other transactions can wait weeks. You should set your fees according to your particular need.
The best wallets for setting fees include:
- Desktop software:
- Mobile wallets:
2. Check the Mempool.
The “Mempool” is the collection of all valid, yet unconfirmed, transactions.
Miners build blocks to add to the blockchain. Every block, the miner reaches into the mempool, and grabs transactions (presumably transactions with the highest fees). Sometimes, a miner will not include transactions, in an attempt to set a minimum fee, or in an attempt to build a smaller block faster than their competitors.
How do you View the Mempool?
The mempool featured above shows transactions from the past 12 months. As you can see, there has been periods of time where the fees were very high and times where they were very low.
You can view the Bitcoin, Bitcoin Cash, and Litecoin Mempools at https://dedi.jochen-hoenicke.de/queue/more/#2w. Customize your time frame, and choose among the different mempools on top. Each mempool looks slightly different because every full node has its own mempool.
I like this website because it shows the mempool graphically, with color-coded transaction fees. This website shows the mempool according to (1) number of pending transactions, (2) amount of pending transaction fees, and (3) pending transactions according to data size.
Zoom in for a closer view of the current state of the mempool. Then, look at the price legend on the left-hand side. You can click on the prices to hide a portion of the Mempool.
How do I pick a transaction fee?
Hover your mouse over the transactions on the far right side of the chart. As you can see, there will be a list on the left and a list on the right. The list on the left is the amount of satoshis per byte. The list on the right shows the amount of transactions (in megabytes) that have set that fee.
The top 1mb of transaction are usually confirmed on the next block. The miners want to confirm the transactions with the highest fees so that they can make more money. You want to be in the top 1mb of transactions if you want your transaction to process quickly. In this case, if you want your transaction to be processed right away I’d set a fee 140 satoshis a byte. If you look at the time that is shown on the graph, it’s 11:16pm which is why the fee is relatively low.
On the other hand, earlier today I would’ve had to pay 3x this amount! Take a look below!
In this case, the top 1mb of transactions are in the 500 satoshi plus range. We would’ve had to pay 500 satoshis plus to have our transaction confirmed.
Sometimes, you can set low transaction fees and simply wait a while until they are confirmed. This is a good idea if you are transferring Bitcoin between your own wallets and you don’t mind waiting.
A better way is to just keep an eye on the mempool. If you see that the chart has dipped to a low point, then it’s probably a good idea to process your transaction.
3. Transact when the mempool is less congested.
Why is the mempool full? The answer depends supply and demand. (hash-power, mining difficulty, and block size) and demand.
People use the Bitcoin Network much more on weekdays, especially during business hours. To save money on transaction fees, save non-essential transactions for late nights, weekends and holidays.
The best way to observe mempool congestion is by looking at a long term view of the mempool. Click to see a 30 day chart so that you can get a good idea of how busy the Bitcoin network has been.
4) Transact less often.
Why are transaction fees so high?
Transaction fees are a function of supply and demand. Essentially, transactions are bidding for rare space in the Bitcoin Blockchain.
Users and businesses enjoyed low transaction fees for years. However, distributed blockchains are very bad for scaling. Every Bitcoin full node must carry every on-chain transaction which has ever occured. Thus, developers and the community do not want to allow every transaction on the blockchain.
Instead, users and businesses should learn to be more efficent in their use of the blockchain. Businesses can “batch” payouts, so that they pay multiple people in one transaction, saving space. Users should only transact when necessary. For example, users should use a credit card or an alt-coin like Litecoin to purchase goods and services.
Transaction fees do not affect long-term holders of bitcoin. Transaction fees tax those who use the network. The new bitcoins in every block implicitly tax long-term holders, by diluting the value of their bitcoins. Eventually, miners will be paid almost exclusively with transaction fees. Thus, some people say that transaction fees are important to subsidise miners in the coming years, contributing to the security of the network. Other people claim that transaction fees are being paid to hostile miners.
5) Use a Segwit address.
What is Segwit?
In late 2017, Segregated Witness (Segwit), a soft fork, activated on the Bitcoin Network. Segwit is an opt-in upgrade to the Bitcoin Network.
How do I know if I’m using Segwit?
Legacy addresses start with the number “1.” If you are using an address with the number “3,” then you are either using a multi-sig address, pay to script hash, or Segwit address.
Transactions sent from Segwit addresses enjoy a discount on the Bitcoin Network. Bitcoins sent from Segwit addresses pay lower fees, because their digital signatures are published for free. You can over 10% easily by using a Segwit address.
Not all wallets and services support Segwit yet. For example, Bitcoin Core is expected to support native Segwit addresses (bech 32) in the upcoming version 0.16 expected in March 2018. Other wallets support Segwit by default. For example, Greenaddress for mobile wallets, and Trezor hardware wallets.
6) Avoid transacting in small amounts.
What are dust transactions?
Dust refers to very small bitcoin transactions outputs. All bitcoin transactions refer to “unspent transaction outputs” (a UTXO). If a person receives many small bitcoin transactions, then, sends a large transaction to someone else, then their transaction will be larger in size. A transaction that is larger in size will cost more money in transaction fees!
A transaction says two things. First, the transaction says: “I have the bitcoins I want to spend. Look at these prior transaction sent to my address. I have not spent them yet.” Second, the transaction says “I have the authority to spend those bitcoins. Here is my digital signature with the corresponding private keys.”
Bitcoin addresses which receive many small transactions will pay more in transaction fees, because their transactions will necessarily reference more UTXOs. Similarly, a transaction with more “outputs,” or destination bitcoin addresses, will take up more space as well. Inputs take up more space than outputs. However, input need to be signed… Since signatures are free for Segwit transactions, Segwit can result in significant cost savings.
Some UTXO’s represent such a small amount of bitcoin, that they are worth less than the transaction fees to send them.
To avoid a buildup of dust UTXO’s, avoid on-chain transactions for small amounts. For example, aggregate exchange withdrawals into larger transactions. For example, if you are buying $20 per bitcoin per day on Coinbase, no need to change your buying habits. These purchases do not appear on the Bitcoin Blockchain and do not incur transaction fees.
If you withdraw from Coinbase on a daily basis, you will build up many small transactions which will result in higher transaction fees.
Also, there is a fixed data size per transaction, and a variable size per additional input or output. If you transact less often, you will also save on the fixed costs too.
Will Bitcoin transaction fees go down in the future?
In the long-term scaling solutions will emerge which allow lower-fee transactions “off-chain.” An example of an off-chain transaction is a transaction on Coinbase between two users. Coinbase updates their internal ledger. Yet, this transaction is not broadcast to the Bitcoin Network.
“On-chain” transactions, which occur on the Bitcoin Blockchain, are expected to remain expensive.
Transaction fees are good, because they prevent people from publishing low-value transactions and information to the blockchain. For example, if block space were free, then people would use the blockchain as free cloud-storage, or even put useless “graffiti” on the blockchain.
Someone once posted the entire Bitcoin White Paper PDF file on the blockchain using the OP_RETURN function (which allows a small amount of superfluous data to be published to the Bitcoin Blockchain). Some businesses use this space for notary services and indelible time-stamping. Remember, since transaction fees are charged on a per-byte basis, people pay for this space too.
Developers are working hard to make transactions smaller and more efficient. Schnoor Signatures and signature aggregation techniques will reduce the space required for every bitcoin transaction.
Developers are also working on ways of scaling the Bitcoin Network in secure, trustless, layer-two scaling solutions, like the Lightning Network. Experts expect transaction fees to drop orders of magnitude when using layer two technologies. Just like the internet, the Bitcoin Network will have layers of protocols which operate atop each other.
In Conclusion
It’s easy to reduce your fees by more than 50%. You can do this by viewing the mempool, using the proper wallet, and avoiding unnecessary transactions. Everyday, the Bitcoin network is growing with new users who are eager to learn and transact. By learning more about this new technology, you can save money and help others do the same. If you leave this article with at least one thing, I hope it’s that it is important to use a wallet that will allow you to set a fee. Many people are still unaware that they have this option.
Thank you for reading my work! Please comment below if you have any questions or comments!