We use cookies

We may place these for analysis of our visitor data, to improve our website, show personalised content and to give you a great website experience. For more information about the cookies we use open the settings.

Cookie settings

Published on 2022-03-23
In a Nutshell:
Transactions fees could be 0 (free), if nobody else is issuing any bitcoin transactions. Bitcoin transaction fees are not paid based on how much Bitcoin (BTC) you are sending but based on the size the transaction takes up in a block and the prices other users pay for their transactions. It can be seen as a text file with text in it. The more data you store in your text file (or transaction) the more you pay. The reason is because blocks have a limited size and therefore cost is linked to space used in that block. Miners always chose the highest paying transactions first.

Deep Dive:

An often criticized topic around Bitcoin is the discussion about its ability to process transactions, specifically how many transactions and how expensive they are. At times the Bitcoin Network gets congested and transaction fees are going through the roof. We want to explain why this is the case and what can be done to avoid paying enormous fees and what would have to be done in order to increase the transaction processing capacity of the bitcoin network.

Whenever you send a bitcoin transaction, it first goes into the so called mempool . This is the place where all pending transactions are on the network and all bitcoin nodes and miners get newly created transactions pushed into their local copy of the mempool. So everyone can see all transactions that are waiting to be processed or how it’s called, “mined”. Bitcoin transactions are mined and only after being mined, they are officially transferred to the recipient or how it is called “confirmed”. Newly created transactions are visible but not yet confirmed as long as they stay in the mempool. If you pay for a service or deposit Bitcoin into an exchange, it won’t be accepted until it has been confirmed at the very minimum as until then, the Bitcoins are not available in the wallet of the receiver. Its much like sending post with the Post office being the mempool.

Bitcoin miners, once they produce a new block, chose which transactions from the mempool they put into the new block they mined. They must select as there is limited space within a bitcoin block and not all pending transactions fit into the new block.

How do they select? Like any other profit oriented business: By the transaction fee the users pay.

In short, miners select the transactions based on how much fee the user was willing to pay for his transaction. Here it gets tricky though, as with Bitcoin, the fee is not measured in USD nor has it any impact on how much value (in USD or BTC) you actually send but rather on how much physical space your transaction takes within the block. This is why the transaction cost is mostly measured in Satoshis per Byte which is basically how much value per space one is paying. This is the only value that miners care, since the limitation of the blocks they mine is the space available within that block.

Satoshi Nakamoto implemented a 1 MB limit per block. 1 MB (Megabyte) means that all transaction data cannot take more space than 1 MB combined. This has been changed meanwhile and today, a bitcoin block allows between 2 and 4 MB (4 million weight units),thanks to a protocol update (segwit).

We start to see now, why the transactions are priced in the amount of storage they take. This means in turn that not all transactions cost the same and again, the value one is sending has no impact on the cost of the transactions.

Sending from one address to another address uses less physical space than sending from one address to 200 addresses, as less data has to be stored. One can imagine it like a text file on your computer that needs less text inside. It is actually pretty much the same.

Example Simple Transaction: 118adbe67aaded9e8babee12e0bb4e82fb19855bdce3aad1e1d887698ad04fcb (Transaction)

Here one sender sends to one receiver. The value weight is 449 for the entire transaction. This is 449 out of the available 4000000. A block could therefore contain up to 8900 such transactions.

Example Multiple output Transaction: 5f6bf756905285e947e696a9156e010388fd480156d25cb4e31b75b86e65b5cc (Transaction)

Here from 2 addresses Bitcoin is sent to many receivers. This is typical for Exchange Withdraw transactions as exchanges bundle multiple withdraws into one transaction.

The weight is 9850 which is 20 times more than for the simple transaction and 9850 out of 400000. A block could maximum contain up to 406 of such transactions.

This means instead of adding this second, more complex transaction to a block a miner could add 20 simple transactions but therefore this transaction (if paying the same fee per space unit) pays 20 times more in fees.

Transaction Cost War

Once the bitcoin Network gets congested, the bidding war starts. As miners chose transactions solely based on how much fee you pay in relation to your transaction size you are forced to pay a higher fee and outbid most of all the other transactions in order to get mined faster. Of course you can still place a transaction with a low transaction fee but it could be remaining in the mempool for hours, days or even weeks.

The most expensive days in history to send bitcoin transactions

This situation has resulted in transactions costs going up significantly in times of high demand. Below is a list that shows the top 10 Calendar days in the history of Bitcoin in regards of how much USD per Byte has been paid.

The list is adjusted to the Bitcoin USD price in order to put a USD value behind the actual cost paid. Just in Bitcoin paid measured, the list would look different with many days in the first 2-3 years of Bitcoins existence taking up the top rank.

As its clearly visible, when bitcoin crashed in 2017 many got into panic mode and tried to deposit their bitcoin into exchanges in order to cash them out. This caused people to pay a lot for their transactions and this in turn raised the prices for everyone else as miners are greedy and sell the space in the block to the highest bidders.

The most expensive days in 2022 to send bitcoin transactions

The values below put into perspective, just how expensive it was back in 2017. In fact it was 17 times more expensive than the most expensive day in 2022 so far.

Why can bitcoin not handle more transactions?

Because of the limitation in the block size. All it takes in order for Bitcoin to handle more transactions per second/minute/hour/day is to increase the block limit from the current 4 million weight units or 4 mb to a higher value.

The topic around the Bitcoin Block Size and its transaction capacity has been the reason for many heated discussions, yes even digital wars within the bitcoin community that led to creations of hard forks like Bitcoin Cash , where the block limit is increased and can be further increased depending on the need.

Glasschain does not take any side and this article is just to explain how the current system is working and shows what it would take to change it, so that normal users who might have never heard of it, can understand.

What can I do to avoid paying high fees

Be careful with your wallet. Most wallets have a slider showing users conveniently three options when they send transactions.

  • Slow (10 blocks +)
  • Medium (within 5 Blocks)
  • Fast (next block)

    This lets users believe that its always the same cost BUT IT IS NOT. Wallets calculate based on the current state of the network and if there is a lot of transactions pending, they check the fees the other users are paying and decide based on that, how much you pay when you select for example FAST. This means, that on one day Fast can be extremely cheap and on another day very expensive.

    This transaction dd9dd1f42b9cafa796449a97a8683906456cf43d9ff071ae03d750a0bc82bfb8 (Transaction) is from one of the top days and one can see the sender was willing to pay 1440 Satoshi per byte, being more than required and its likely that this senders wallet put this value to make sure the transaction is within the next block. The user ended up paying 0.0054 BTC for this transaction which was at the time of the transaction around 75 USD to deposit 310 USD into Poloniex .

    The transaction fed91694b1ae68712893d9b17549a982808a161d503e93b25f16b8e68ed44630 (Transaction) was rather small with only 830 weight unites as it was just 1 sender with 1 receiver + change address.

    This transaction is in the same block, so the exact same time, the sender was willing to pay even more which is 1605 Satoshi per byte. As this transaction is much bigger in size, so was the actual transaction cost which was 0.0328 BTC or 459 USD. However, this was a Poloniex Exchange withdraw transaction and had a total of 45 receivers + change. This makes this transaction much cheaper proportionally to the amount of value sent.

    At the end it is up to the user to decide what he or her is willing to pay for a transaction. As long as the user understands the implications of those sliders and “easy selectors” and has a sensitivity to understand how bitcoin transaction fees are calculated, nobody can say anything.

    How many transactions can Bitcoin process?

    It becomes very clear that the often referred “transactions per second” is a tricky KPI (Key Performance Indicator) for Bitcoin as it doesn’t tell you what type of transactions. 1 Transaction could payout thousands of users from an exchange or just being Paul sending to Kathrine 0.001 Bitcoin. However, the average maximum transaction per second is slightly above 3 in the recent years. Meaning 3 transactions per second.

    Visit our Bitcoin Transaction Fee Chart