How to Save on Bitcoin Transaction Fees

How to save over 50% on Bitcoin transaction fees.

Constantly, I see bitcoin transactions which overpay up to 100x more than necessary in transaction fees.  This is a big problem. Many bitcoins are lost to Miners due to overestimated transaction fees. By the end of this article, you will save a lot on Bitcoin transaction fees.  Also, you will learn how to set fees for an urgent transaction.

Senders pay transaction fees to miners.  Miners prioritize transactions which pay the highest transaction fees.  Miners retrieve unconfirmed transactions from the “Mempool.”  The Mempool contains verified, but unconfirmed, bitcoin transactions.  Then, miners include transactions in a block.  Miners are paid when the block is added (a.k.a. confirmed) to the Bitcoin Blockchain.

Bitcoin wallets use algorithms which routinely overpay transaction fees. Wallet developers overestimate fees, because otherwise a transaction might become stuck in the Mempool.  A transaction in the mempool will eventually be included in the blockchain.  If the Bitcoin Network is busy, however, transactions might take days to confirm!

To avoid complaints and support requests, developers and businesses overpay transaction fees. In response, transaction fees for all users rise, as algorithms attempt to outbid each other. Thus, high transaction fees beget high transaction fees.

Stuck transactions will simply take longer to confirm. There two ways to facilitate an unconfirmed transaction:

  1. Child Pays For Parent (CPFP)

One way is called “Child Pays For Parent” or CPFP.  This occurs when the person receiving the bitcoin creates a second (child) transaction to subsidize the first (parent) transaction.  The new transaction intentionally over-pays its transaction fees.  The Miners will mine the Parent Transaction so they can earn the transaction fees from mining the Child Transaction too.  The Parent and Child transactions are mined in the same block.

2. Replace by Fee (RBF)

Replace by Fee, unlike Child Pays for Parent, is performed by the sending party.  There are wallets which allow the user to increase their transaction fees, by replacing the stuck transaction with a second transaction offering a higher fee.  The sender can increase the transaction fee multiple times, by replacing the transaction multiple times.  To use this option, the sender must use a wallet which supports RBF.  The Bitcoin Core (desktop) and Blockstream Green (mobile) wallets support this feature.  Note: the receiving party may receive a notice that RBF is enabled, because there is a risk that the sending party can use this feature to fraudulently replace a transaction.

How to measure fees.

Note: Bitcoin wallets calculate transaction fees in “Satoshis per byte” (sats/byte). A Satoshi is 1/100,000,000 of a bitcoin. A byte is 1/1,000 of a kilobyte of data. A few wallets use kilobytes, milibits, or simply calculate the total fees paid.

To give you an idea, 5 sats/byte is a low fee, 100 sats/byte is a high fee, 250 sat/byte is a very high fee. The highest fees paid are about 500-1,000+ sats/byte, which is ridiculous. These times are very rare.

Transaction sizes.

Small transactions:

A one-input, one-output transaction measures about 225 bytes.  Bitcoin operates on an Unspent Transaction Output (UTXO) Model, rather than an account based model.  Thus, each transaction will spend the outputs of past transactions.  For example, if you receive a total of two transactions, and sweep all the bitcoin to another wallet, then the transaction will be a two-input, one-output transaction.

For a transaction fee discount, use a Bitcoin Address starting with a “3” or “bc1”.  Addresses which begin with “1” receive no discount.  Bitcoin Addresses which start with “bc1” will give you the biggest discount.  Unless it is a multi-signature transaction, Bitcoin Addresses starting with “3” may give you a discount too.  Bitcoin addresses starting with “1” are “legacy” addresses.

Segwit transactions will only charge you for a portion of the overall transaction size.  For example, you will be charged for about 175 bytes in a simple Segwit transaction.

Medium size transactions:

If a transaction has multiple inputs, or multiple outputs, the transaction will be larger than 250.  Multi-sig transactions, which require signatures from multiple Bitcoin Wallets, will be mid-sized transactions.  They can range from 300-500 bytes, since digital signatures constitute a large part of every transaction.  A multi-signature transaction will have 2 or more signatures, and 2 or more public keys.

Hash-locked, time-locked, or other Bitcoin Smart Contracts may require more transaction size as measured in bytes.  There are technologies which will reduce the size of these transactions.  For example, Taproot and Schnoor Signatures are proposed upgrades to the Bitcoin Protocol, and will result in smaller transactions once implemented.

Large transactions:

Transaction fees are not calculated using the amount sent.  Yet, large transaction amounts will often carry larger fees since more inputs must be added together to send the larger amount.  The largest transactions can be larger than 1 kilobyte, but these transactions usually involve a Coinjoin, large payment, or large withdrawal from a Bitcoin Business.

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:

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?

Bitcoin Mempool one year graph

The mempool featured above shows transactions from 2017. 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 Mempool 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?

Bitcoin Mempool Graph

The safest way to acquire bitcoin is through a regulated exchange, such as the Cash App (if you use this link, we will both get $5 of free bitcoin

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!

Bitcoin Mempool Graph 2

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.

NOTE: Since 2017, transaction fees have been much lower.  Now, transactions with fees as low as 1 sat/byte can be confirmed within hours.

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 supports native Segwit addresses (bech 32) version 0.16 in early 2018. Other wallets support Segwit by default. For example, Greenaddress for mobile wallets, and Trezor hardware wallets.

A native Segwit address pays the lowest transaction fees, and those Bitcoin Addresses with a “bc1” instead of a “3” or “1.”  To use Segwit, no special instructions are required.  Simply use Bitcoin Core, Blockstream Green, Trezor, or another compatible Bitcoin wallet.

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 implies: “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 implies “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 data, or 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!