EIP-1559 was an upgrade that marked the first ever significant change being made to Ethereum's transaction fee mechanism (TFM) in the history of the network. Essentially, it replaced the prior TFM model with a new one improving economic efficiency and user experience. It also paved the way for Ethereum to begin working on multi-dimensional fee markets to improve its efficiency even more, starting with EIP-4844.
In this article we are going to learn about Ethereum's current transaction fee mechanism provided by EIP-1559. We will dive deep into EIP-1559 to explain what its objectives were from the beginning and why it was designed the way it is. Many people have a misunderstanding of what EIP-1559 was created to address and we can attribute much of this confusion to how it was used as the poster child for a popular meme known as Ultrasound Money.
The motivation to write this article was born out of frustration that many people still don't understand the main benefits of EIP-1559 and the problems it addresses and often come to the wrong conclusions due to its close association with the Ultrasound Money meme. A consequence of this is that much of the foundational work that went towards EIP-1559 is overshadowed and under-appreciated which is quite tragic because much of this broke new ground for the design space of blockchains (especially around mechanism design).
The objectives of this article are as follows:
Before we get started, let's clarify some common misconceptions about EIP-1559:
In public blockchains the design of the cost/reward structure is important to ensure all actors driving its operation and activity are motivated to participate within the system. A part that plays a big role here is how Ethereum manages the sale and purchase of blockspace to users. In Ethereum, users are required to pay transaction fees to cover costs of inclusion and execution on the blockchain. These fees cover the social costs of transactions as well as premiums to block producers who create blocks on behalf of users.
The relationship between users and block producers are characterized by the principal-agent problem, which describes where one party (an agent) takes actions on behalf of another party (the principal) but the interests of the agent do not fully align with the principal. In Ethereum, a block producer (agent) includes transactions in blocks on behalf of users (principals), but block producers are motivated to maximize their revenue, therefore when users do not sufficiently incentivize block producers to include their transactions, their requests for inclusion are left unfulfilled.
Let's describe below the interests of users and block producers:
Users: Timely transaction inclusion at the lowest possible cost.
Block Producer: Maximum possible revenue earned from building a block (from transaction fees, consensus rewards, and potentially MEV).
Block producers serve the network but are under no obligation to include transactions in their blocks (maybe this changes in the future with inclusion lists). While building an empty block incurs opportunity cost for block producers, they still have the freedom to engage in other behaviors (such as only including exorbitantly high transaction bids) that maximize their personal gain, potentially at the expense of network efficiency and fairness. Such misaligned, yet economically-rational, actions by block producers can threaten the efficiency and welfare of Ethereum. A blockchain's transaction fee mechanism aims to align interests of users and block producers to help achieve the most economically efficient outcome.
A Transaction Fee Mechanism (TFM) describes a set of rules and processes in a blockchain protocol that determines how transaction fees are calculated, collected, and distributed for processing transactions.
There are several goals we want to achieve with a TFM:
Good User Experience: The TFM should provide transparent pricing that minimizes guesswork and uncertainty for users in setting transaction bids. It should therefore improve transaction fee predictability.
Incentive Alignment: The TFM should be designed in such a way that it encourages honest behavior and compliance with protocol rules which seek to provide efficient and fair access to blockchain resources. Honest behavior of users involves them expressing their bids as their true value of their transactions. Honest behavior of block producers is selecting the list of highest value bids (as described by the TFM) and building a block with them.
Robustness to Manipulation: Block producers and users should not be able to benefit from attempting to manipulate the TFM. If the TFM is designed well enough, it will guarantee that attempting manipulation of it is never an optimal strategy for either block producers nor users. In addition to this, the TFM seeks to be robust to coalitional efforts to exploit the mechanism such as one or more users establishing a cartel with a block producer in pursuit of greater benefits. A well-designed TFM ensures that following the mechanism is always more profitable for users and block producers than trying to collude to exploit it.
Responsive to Market Conditions: A TFM should be able to dynamically adjust to current market conditions, facilitating discovery of market-clearing prices that accurately reflect demand for blockspace. In addition to this, it should be robust to market changes reducing fee volatility.
Economic Efficiency: A TFM achieves greater economic efficiency when it allocates blockspace optimally. We aim to ensure that blockspace is allocated to those that value it the most. A TFM should help express the economic value that users ascribe to their transactions to best inform block producers on how to allocate resources when building a block. At a higher level, a TFM should help maximize overall network welfare (everyone being better off).
Let's introduce one of the main components that make up TFMs - market mechanisms (e.g. auctions, posted-price markets etc). A market mechanism helps coordinate the interactions between users and block producers in the market for blockchain resources to help drive the allocation of blockspace to user transactions.
In every Ethereum block, there is a fixed amount of resources allocated for transaction processing -- we generally refer to this as blockspace. Because we limit the amount of blockspace available in each block, we consider it a scarce resource. We consider blockspace a scarce resource because we limit how much of it is available with each block to satisfy the network's feasibility model for running full nodes (in service of preserving decentralization).
Let's explicitly define the nature of supply and demand around blockspace below:
Users express their demand by specifying a bid price they are willing to pay per unit of gas (the resource of blocks) consumed by their transactions. A market mechanism helps provide price discovery to both users and block producers, where market-clearing prices can be established. Market-clearing prices describe the price point where the interests of users (demand) and block producers (sellers) align perfectly. The goal is to have the TFM determine the market-clearing price of blocks, allowing users to trivially set bids and for block producers to easily make decisions about allocation.
Having gone over the basics and core concepts surrounding transaction fee mechanisms, we will now explore how Ethereum's TFM used to work before describing how EIP-1559 changed things for the better.
Let's get a better understanding of how we used to manage transaction fees in Ethereum. Gas is the unit of measure used by transactions to meter the amount of blockchain resources they consume when included on Ethereum. Users are required to specify bids in the form of a gas price (denominated in ETH) that they are willing to pay per unit of gas consumed by their transactions. A transaction fee is described by the following formula:
Example: Consider a transaction that consumes 21000 gas where the user sets a gas price of 20 gwei (2e-8 ETH or 0.00000002 ETH); Their transaction fee would be 0.00042 ETH.
Ethereum's legacy TFM (pre-1559) made use of a first-price auction market mechanism.
A first-price auction (FPA) is a type of auction where the highest bidders win and pay the exact amount they bid. Users made bids in the form of gas prices for their transactions and broadcasted these to the network mempool. The block producer would look at the current bids made and select the set of transactions with the highest bids that can fit into their block.
This type of auction was public, meaning that anyone could observe transaction bids at any time and use that information as they wished. Because this TFM doesn't provide any additional measures that communicate information like market-clearing prices, users were left with a lot of uncertainty and guesswork when it came to deciding on what would be a suitable bid. With this lack of information, users (and wallet providers) resorted to relying on bidding information available from the transaction mempool to guide what prices they set for their own bids. Naturally this is incredibly inefficient because other peoples bids do not necessarily reflect the objective demand for transaction inclusion but rather opinions about what it is.
Let's walk through the flow of events that unfold involving this TFM:
A user creates a transaction (where the amount of gas that will be consumed by it is calculated).
The TFM provides the user with an estimated gas price based on recent transactions.
The user sets a gas price based on this provided information and broadcasts their transaction to the mempool.
When it is a block producer's time to create a block, they look at the mempool and select the set of revenue-maximizing transactions to include in their block and create it.
The block producer broadcasts the new block to the network, and it is included on Ethereum.
When the new block is added, the blockchain collects transaction fees from users and transfers them to the block producer.
A TFM ideally works well enough that it encourages users and block producers to use it and only it honestly to drive the allocation of blockspace. Let's have a look at how well of a job the legacy FPA mechanism does in this regard:
The legacy TFM's robustness to manipulation is very limited. The reasons why this is are explained below:
Vulnerability to manipulation by users: Users stand to benefit from implementing strategies like bid shading.
Susceptibility to collusion among block producers and users: Users and block producers are easily able to make off-chain agreements that improve both their benefits compared to using the TFM. An example of this has been observed numerous times on Ethereum where a user's transaction gets included in a block costing 0 ETH because they entered an agreement with a block producer directly instead of through the TFM. The image below shows a transaction that did just that.
The image above demonstrates that collusion was in fact happening during the time when Ethereum leveraged the legacy TFM. Adding to this, the collusion was happening at a large scale. Essentially what was happening was that there were 'dual markets' for blockspace. We had the 'official' market for blockspace managed within Ethereum's protocol and guided by the TFM, and then we had the 'dark market' where users approached block producers directly and struck agreements for inclusion in blocks. Because the TFM had no real measures to prevent this, it became an avenue for sophisticated users to make deals with block producers for valuable blockspace outside of the protocol.
Having explored the legacy TFM's incentive compatibility and resistance to collusion. We formally illustrate the game-theoretical properties of the mechanism below:
Economic efficiency is maximized when blockspace is allocated efficiently. There are two factors that contribute towards the realization of this goal:
Because the mechanism is not incentive compatible for users, they may not always set their bids to reflect the true value they ascribe to their transactions. This can lead to inefficiencies, as the TFM might not allocate blockspace to the highest-value transactions due to imperfect information. Furthermore, strategies like bid shading increase network traffic, which further undermines efficiency. Despite these issues, there is still some level of efficiency in the system. Even if users do not bid perfectly, those with higher valuations are generally more likely to place higher bids, which partially aligns blockspace allocation with transaction value. Therefore, while the legacy TFM allows for some degree of efficiency, it is not optimal.
Ethereum's legacy TFM was reactive to market conditions but not in a controlled or efficient manner. While the TFM did communicate gas prices to users and block producers, these values were often volatile and unpredictable due to the poor and non-dynamic price discovery provided by the mechanism. This made transaction fees quite unpredictable for users.
Ethereum's legacy TFM did not provide a good user experience regarding fee predictability. The lack of a stable, predictable fee structure led to much guesswork and uncertainty around setting fees where users faced difficulty estimating the correct bid amount, leading to frustration, frequent bid adjustments, and increased costs due to potential overbidding.
In August 2021, EIP-1559 introduced a new transaction fee mechanism to Ethereum to address the shortcomings of the prior mechanism. EIP-1559 can be described as a dynamic posted-price mechanism with elements of a first-price auction. It was designed with a few objectives in mind:
Improved economic efficiency: Ensure blockspace is allocated according to true demand to ensure it is used in the most valuable way, therefore enhancing network welfare and optimizing the use of blockchain resources.
Improved user experience for transaction senders: Simplify fee estimation to reduce uncertainty and guesswork, helping users avoid overpaying or facing long waiting times due to underbidding.
Stabilizing transaction fees: Make transaction costs more predictable by reducing sudden changes in fees, ensuring fair pricing for all users.
Reducing network congestion: Minimize the impact of the TFM on network congestion by reducing transaction bid traffic, thereby reducing strain on the network.
EIP-1559 introduces FOUR key features/changes to Ethereum:
EIP-1559 introduces a new value to blocks called a base fee. This base fee is a protocol-computed reserve price (per unit of gas) and represents the price where blockspace supply and demand are matched. The base fee also represents the minimum bid a user must set for their transaction to be eligible for inclusion in a block.
Unlike the previous TFM, the base fee is not set by users but is automatically calculated by Ethereum based on the previous block's usage. It is independent of the current block's contents and is determined by past on-chain activity.
The key benefit of the base fee is price discovery. It helps communicate the market-clearing prices to users and adjusts dynamically with each block, utilizing variable block sizes to better reflect current network demands.
Before EIP-1559, Ethereum used fixed-size blocks with a 15M gas limit to ensure that running a full node remained feasible and decentralized. This limit ensured that participants could run nodes on standard hardware, avoiding heavy computational demands.
With EIP-1559, block sizes can now vary between 0 and 30M gas, with a target average of 15M gas per block. This flexibility allows the network to temporarily accommodate higher demand while maintaining long-term feasibility by keeping average block size within acceptable limits. There is still a hard cap on block size, which is double the previous limit.
Why Variable Block Sizes?
Flexibility during periods of demand fluctuation: Allowing block sizes to expand up to 30M gas during periods of high demand helps absorb demand spikes, reducing sharp increases in transaction fees and mitigating congestion.
Stable base fees: Variable block sizes enable smoother adjustments to the base fee, leading to more stable and predictable fees for users.
With an understanding of how base fees and variable block sizes interact, let's look at how the protocol manages base fee updates across blocks. This will show how base fees are calculated and how variable block sizes help ensure smoother adjustments.
The base fee for each block is determined using the following formula:
To compute a block's base fee, the protocol uses:
There are two constants in the formula: T, the target block size (15M gas), and L, the learning rate (0.125 or 12.5%), which controls how quickly the base fee changes. The learning rate balances:
EIP-1559 sets this learning rate to 12.5% to balance smooth adjustments and demand responsiveness. Here is an example of base fee calculation:
Example: If the previous block's base fee was 20 gwei and it used 29M gas (14M over the target), with a learning rate of 0.125, the next block's base fee would be 22.3 gwei. This demonstrates the protocol's ability to dynamically adjust fees based on demand.
In Ethereum's legacy TFM, all transaction fees were given entirely to block producers.
With EIP-1559, the fee structure has changed to leverage the blockchain's programmatic capabilities at the protocol level. Under EIP-1559, a transaction fee consists of two parts:
Unlike the legacy TFM, block producers only receive the priority fee. The base fee is burned, meaning it is permanently removed from circulation. The total transaction fee a user pays is calculated as:
Example: For a 21000 gs transaction with a base fee of 20 gwei (2e-8 ETH) and a priority fee of 1 gwei (1e-9 ETH), the total transaction fee would be 0.000441 ETH. Of this, 0.00042 ETH (21000 gas x 20 gwei) is burned, and 0.000021 ETH (21000 x 1 gwei) goes to the block producer.
Why is the base fee burned?
This is the part of EIP-1559 that confuses many people, there are many who believe that EIP-1559 was designed to do this to increase the value of ETH however the base fee revenue burn is a crucial design decision to ensuring the TFM works efficiently and realizes its objectives - whatever monetary effects are experienced because of the burn is simply a side-effect.
The base fee is burned to prevent block producers from colluding with users to bypass the TFM, which would replicate the issues of the legacy first-price auction system. Burning the base fee ensures it is not given to block producers, maintaining the integrity and fairness of the mechanism. Other methods, like forwarding fees to future block producers or DAOs, were considered but deemed more complex and vulnerable to game-theoretic attacks (gaming the mechanism), making burning the simplest and most secure choice.
Before we put everything together, we should cover one more change introduced with EIP-1559: the fee cap. This cap sets the maximum fee a user is willing to pay per unit of gas, covering both the base fee and the priority fee. It ensures users have control over the maximum cost of their transaction, even if the base fee rises unexpectedly. The transaction fee per unit of gas is calculated as:
This mechanism helps users minimize transaction costs based on their settings:
Let's walk through how EIP-1559 functions with all its components:
A user creates a transaction, and the gas required for it is calculated.
The TFM provides the current base fee needed for transaction inclusion.
The user's wallet sets the fee cap and priority fee (customizable to the user's preference), and broadcasts their transaction to the mempool.
When a block producer is ready to create a block, they select the set of transactions from the mempool that maximizes revenue, prioritizing those with the highest priority fees.
The block producer creates the block and broadcasts it to the network, where it gets added to Ethereum.
When the new block is added, the blockchain collects transaction fees, burns the base fee, and transfers the priority fee to the block producer.
The protocol adjusts the base fee based on block usage: if it exceeds 15M gas, the base fee increases, if below, it decreases.
A well-designed TFM encourages users and block producers to use it and only it honestly to ensure efficient allocation of blockchain resources. Let's assess how EIP-1559 performs in this regard:
EIP-1559 significantly improves robustness to manipulation compared to the legacy TFM. The improvements in this robustness are explained below:
Enhanced resistance to manipulation by users: Under EIP-1559, the best strategy for users is no longer to game the system, but to honestly bid the true value they ascribe to their transactions, as manipulation provides no financial advantage.
Strong defense against block producer and user collusion: EIP-1559 greatly reduces the incentives for collusion. Since block producers only receive the priority fee and not the base fee (which is burned), there is minimal benefit for them to engage in off-chain agreements with users. Block producers would have to cover the base fee costs themselves, making such strategies unprofitable. EIP-1559's design ensures that following the protocol is the most beneficial approach for both users and block producers.
Having explored EIP-1559's incentive compatibility and resistance to collusion. We formally illustrate the game-theoretical properties of the mechanism below:
Economic efficiency is achieved when blockspace is allocated efficiently. EIP-1559 contributes to this through:
By improving incentive alignment and robustness to manipulation, EIP-1559 has led to more efficient allocation of blockspace and enhanced network welfare. However, there is still room for improvement. EIP-1559 does not fully achieve user incentive-compatibility under all conditions, and further mechanism design is needed to minimize MEV and enhance the mechanism's game-theoretical properties for even greater efficiency gains.
EIP-1559 responds more dynamically to market conditions than the legacy TFM:
EIP-1559 has significantly enhanced user experience in 2 main ways:
Empirical analysis helps support the claims made above, highlighting the enhanced performance metrics of EIP-1559 compared to the legacy TFM. The key findings from this analysis are shared below:
From our thorough exploration of EIP-1559 and the previous mechanism, it is clear that we have made good progress towards achieving the goals of a transaction fee mechanism. EIP-1559 successfully reduced fee volatility, encouraged honest behavior, and shortened transaction waiting times. These improvements not only enhanced the user experience on Ethereum but also increased economic efficiency under the hood. EIP-1559, therefore, represented a successful step forward for Ethereum. So where do we go from here?
In March 2024, Ethereum introduced EIP-4844, a major upgrade that added a new resource type called data blobs to the network. Similar to how gas measures EVM execution, data blobs use a separate form of gas called data gas.
To differentiate, we'll refer to the traditional gas used for Ethereum transactions as execution gas, while the gas for data blobs is data gas. Here's how each type is used:
While this article wasn't written to explain what exactly this data blob resource type is and what it is used for, it would be useful to explain a little bit about them. Data blobs were introduced to Ethereum (through EIP-4844) to provide a separate fee market for publishing large amounts of data completely decoupled from the traditional fee markets that drive most transaction activity on the network.
The use case of data blobs is for actors who wish to publish data to Ethereum that will not be stored in state and hence won't require mutation or update. They usually do this to provide proof that the data was once made available on Ethereum, and if the data was stored, it can be presented to Ethereum where the integrity of the payload can be cryptographically verified (i.e., “data availability”). This directly benefits L2 solutions like rollups with providing cheaper means to ensure data availability using Ethereum.
While this is a niche use-case, before EIP-4844 users often used normal transactions (leveraging cheap calldata) to publish large amounts of data. This naturally impacted the efficiency of execution gas, as less gas became available in blocks to users actually seeking use of the EVM to perform actions like account balance updates and smart contract interactions. To improve efficiency of Ethereum, data blobs were therefore introduced to decouple these trends of usage from traditional transactions leveraging Ethereum's execution.
Applying lessons from EIP-1559, EIP-4844 designed a similar fee mechanism for data blobs with some differences:
Target Limits: Instead of gas, blob fee markets use blob count, targeting 3 blobs per block with a hard cap of 6.
Transaction Costs (2D): Blob transactions require a small amount of execution gas but primarily use blob gas. The base fee for blob gas adjusts like EIP-1559 based on usage but does not include priority fees because the priority fee of the execution gas portion of the transaction can be set to incentivize inclusion. Each blob consumes 131072 blob gas which the user pays a fee for per unit of blob gas along with the execution gas fee.
Multi-dimensional fee markets help us segment the global market for access to Ethereum's computational resources by patterns of usage. In previous times, we used a single fee market geared towards accommodating all sorts of patterns of resource usage. However, we have come to understand that this is not an optimal approach to allocating resources.
Some patterns of usage (such as using Ethereum for data availability alone) have different types of underlying demand as well as utilize network resources in different ways. It would therefore be more efficient to global blockchain resource allocation if we made abstractions for different patterns of usage into resource types (like execution, data), to price the utility of their use independently. Our long term vision with Ethereum in terms of economic efficiency is to decide upon the right abstractions and hence better organize access to scarce blockchain resources.
At this point, we have quite exhaustively explored transaction fee mechanisms and in particular what EIP-1559 is all about. In this section we will now focus on how exactly it relates to Ultrasound Money🦇🔊.
Ultrasound Money was a term coined by Justin Drake to highlight the evolving monetary policy of the native asset of Ethereum, ETH. The term is often described as a 'meme' to help convey and assert the monetary premium of ETH.
We often use the terms monetary policy and monetary premium when trying to assess how effective an asset can be as a form of money/currency. Lets describe what these two terms mean below:
Monetary Policy: This refers to how the flow of an asset is managed, including how its supply and demand are regulated within a system.
Monetary Premium: This refers to the additional value an asset holds because it is widely accepted and trusted as medium of exchange or store of value, beyond its intrinsic value.
Like many forms of money/currency, ETH also has a monetary policy. However, unlike traditional currencies governed by nation-states, ETH's monetary policy is determined by its protocol design, which is algorithmic and transparent. We can better understand ETH's monetary policy by examining the key components that influence its value flow and supply regulation:
Transaction Fees: Transaction fees represent the cost to users for utilizing the network. In return, users receive private benefits from having their transactions processed. Block producers receive revenue earned from a portion of the transaction fees.
Welfare and Social Costs: As mentioned above, users pay ETH to receive private benefits. The prices they pay cover social costs imposed on the rest of the network(captured within Ethereum's resource pricing mechanism) as well as a premium to block producers to incentivize inclusion.
ETH Issuance: With the change to PoS the issuance rate of ETH has reduced. New ETH is introduced to the global supply to staked validators who participate in consensus duties such as attestation and block proposing.
ETH Burn: With EIP-1559, base fee burning was introduced where the majority of transaction fee amounts are removed from circulation to maintain strong game-theoretic properties that make the transaction fee mechanism robust to manipulation and hence more economically efficient. By removing ETH from the available supply, the side-effect is that the value of all ETH in circulation increases. The fee burn can therefore be viewed as a lump-sum refund to ETH holders therefore describing a value flow back to all network participants (users, block producers etc).
While these factors help measure the value flows of ETH and help motivate the sustainability of its economic model, monetary premium is decoupled from these fundamentals. As mentioned earlier, monetary premium is a perceived status rooted in belief, which helps shape perceptions, drive adoption, and increase demand for ETH as an asset. This, in turn, enhances the overall utility and function of Ethereum, which relies on the widespread use of ETH.
While EIP-1559 plays a crucial role in Ethereum's evolving monetary policy, focusing exclusively on it as the cornerstone of the Ultrasound Money narrative potentially overlooks other significant factors that contribute to ETH's value offering. To more effectively advocate for ETH's monetary premium status, it would be more beneficial to highlight a combination of factors that collectively characterize ETH as Ultrasound Money. These factors could potentially include:
This article was motivated by a desire to correct misunderstandings about EIP-1559 and its role in Ethereum. Misinterpretations, often fueled by memes, can obscure the true reasons behind design choices, and it's important that we realize this and how it potentially hinders progress within this space. Wider circulation of accurate information and critical discussions are essential for driving progress and sowing the seeds for achieving meaningful global impact--we have a long road ahead of us and we need to ensure we remove as much friction we create for ourselves as possible to prepare for what's to come and the problems needing to be solved.
It is my hope that this article helps contribute towards that by reshaping perceptions around EIP-1559 and blockchain mechanism design, highlighting some of the most important work being done within this industry and how we may potentially look back at this point some day and realize how important it was.
Author’s note: A version of this article was previously published here.