Table of Contents

Introduction

EIP-1559 introduced a dynamic base fee and an optional tip or priority fee, replacing Ethereum’s unpredictable auction-based fee model.

What is EIP-1559?

EIP-1559 is a standard track EIP that altered how the Ethereum fee market works and addressed issues with Ethereum’s gas fee estimations. The key changes it introduced include: 

  • Dynamically adjusted block sizes to address delays caused by fixed block sizes during periods of high demand. 
  • A deflationary mechanism to burn the base fee and reduce ETH’s supply over time.
  • Eliminated the need to manually guess transaction gas prices, which reduced the risk of overpaying or experiencing transaction delays and improved user experience.

What challenges does EIP-1559 address?

Before EIP-1559, users would submit transactions with bids (gas prices) to incentivize miners to include a transaction in the next block. In turn, miners would prioritize transactions with the highest bids.

This system resulted in several issues that negatively impacted user experience: 

  1. Selfish mining and manipulative behaviors: Miners could artificially inflate gas prices and prioritize profit over network security by focusing only on transactions with high bids.
  2. Inflationary supply: All fees were distributed to miners, increasing Ethereum’s circulating supply and the risk of inflation.
  3. Volatile, unpredictable fees: Fee estimation tools were unreliable, and prices fluctuated significantly. Users had to guess gas prices and often overpaid due to sudden spikes during times of network congestion.
  4. Delays in transaction inclusion: Fixed block sizes caused long wait times for transactions to complete during times of network congestion, sometimes failing entirely.

EIP-1559's solution

EIP-1559 addressed these fee market challenges with the following changes:

1. Variable block sizes

Blocks were now able to temporarily expand up to 30 million gas limit (the maximum gas allowed in a block) during periods of high activity, doubling the previous amount.

Meaning, miners were able to increase the number of transactions in every block.

2. Dynamic base fee

EIP-1559 introduced a self-adjusting base fee. The base fee is the minimum fee a user must pay for a transaction to be included in the next block. The base fee changes based on block gas usage:

  • Increases when gas used exceeds the 15 million target.
  • Decreases when gas used is below the target.
  • Remains unchanged when gas used matches the target.


For example, if a block uses 20 million gas, the base fee increases in the next block to reduce congestion. If a block uses 10 million gas, the base fee decreases to encourage more transactions.

The base fee for the next block is calculated using the formula:

newBaseFee = baseFeeFromParentBlock × (1+ (gasUsed−targetGas)/targetGas * baseFeeChangeRate)

The baseFeeChangeRate is capped at ⅛ (0.125 or 12.5%), so the formula simplifies to:

newBaseFee = baseFeeFromParentBlock × (1+(gasUsed−targetGas)/targetGas ​× 0.125)

3. Priority fees

EIP-1559 also introduced a priority fee (tip), allowing users to incentivize miners and speed up transaction inclusion, especially during network congestion.

Users set a maximum priority fee they’re willing to pay as a tip, but the final amount depends on network conditions. i.e. a user may pay less than the maximum.

Previously, low fees could stall transactions indefinitely, requiring users to either:

  1. Out-gas the original transaction by re-submitting it with the same nonce and a higher gas price.
  2. Cancel the transaction by sending 0 ETH to themselves with the same nonce and a higher gas price.

4. Max fee per gas

EIP-1559 prevents users from overpaying gas fees by enabling them to set a max fee per gas, which covers both the base and priority fees.

If the base fee rises while the transaction is pending, the max fee ensures the transaction remains valid without exceeding the user’s budget, and any unused fee is refunded.

For example:

  • If the base fee is 100 Gwei and a user sets the max fee at 200 Gwei, they’ll pay 100 Gwei plus the priority fee if the transaction is included in a block immediately.
  • If the base fee rises to 150 Gwei before inclusion in a block, a user would pay 150 Gwei plus the priority fee but never more than the max fee of 200 Gwei.

5. Fee burning

One key change in EIP-1559 is the fee-burning mechanism. After adoption of EIP-1559, the base fee is burned and permanently removed from circulation instead of going to miners or validators.

As of this writing, more than 4.3 million ETH have been burned since the introduction of EIP-1559.

A dashboard displaying the total amount of ETH burned, showing 4,309,357.32 ETH overall and 24.56 ETH burned in the last hour, with corresponding USD values.
Source: EthBurned.info

How does EIP-1559 work?

Before EIP-1559, users set a single gasPrice to send a transaction. Now, gasPrice is split into two values:

  • maxFeePerGas: This is the maximum you're willing to pay per gas unit for a transaction.
  • maxPriorityFeePerGas: The amount of ETH you wish to pay to miners as a tip.

Transaction types

Ethereum originally had a single transaction type (Type 0) but has evolved to support others, including:

  • Type 1 (EIP-2930): Includes an accessList parameter, which defines an array of addresses and storage keys the transaction plans to access.
  • Type 2 (EIP-1559): Transactions with a base fee and a tip


Depending on the transaction type, the properties related to gasPrice and type are different.

Here is an example of a recent type 0 transaction which contains the properties gasPrice and type:

{
"blockHash": "0x001bea918…",
"blockNumber": "0x14f9ae3",
"from": "0xd4bddf5e3d0435d7a6214a0b949c7bb58621f37c",
"gas": "0x3d090",
"gasPrice": "0x5d21dba00",
"hash": "0x0b1b4716ff70de…",
"input": "0xa9059cbb00000000000000000000000035fb…",
"nonce": "0x3d6b1",
"to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"transactionIndex": "0x0",
"value": "0x0",
"type": "0x0",
"chainId": "0x1",
"v": "0x26",
"r": "0xcafbd3d6502093ccc256ad872598d196ced4f…",
"s": "0x737818168a5073494a515e5ade30b0e33651b2…"
}

The transaction type is clearly indicated on Etherscan:

An Etherscan transaction detail showing a Type 0 (Legacy) transaction with gas price, gas limit, and burned fees indicated, including transaction attributes and input data.

Notice that it only has one fee: Base fee.

Here is an example of a recent type 2 transaction with the properties gasPrice, maxFeePerGas, maxPriorityFeePerGas, and type:

{
"blockHash": "0x001bea918eb777c54e52a04dfad5eec705ef566524996ae7e2df0b7b8511396a",
"blockNumber": "0x14f9ae3",
"from": "0x277345355235d4d5f8e1ebd882920f4fa5821467",
"gas": "0x57e40",
"gasPrice": "0x9e3ca6eb",
"maxFeePerGas": "0x2e90edd000",
"maxPriorityFeePerGas": "0x77359400",
"hash": "0xc6789c3315ec671467fce3c396b2df9d35d8a97dcae55d4539625cc4479691b6",
"input": "0xa9059cbb000000000000000000000000f89d7b9c864f589bbf53a82105107622b35eaa40000000000000000000000000000000000000000000000007518058bd45bc0000",
"nonce": "0x3",
"to": "0x92d6c1e31e14520e676a687f0a93788b716beff5",
"transactionIndex": "0x1",
"value": "0x0",
"type": "0x2",
"accessList": [],
"chainId": "0x1",
"v": "0x0",
"r": "0x690b1e80a2d8528468418c0796f871d0517549ca04c10d8fba3e1cf78b36dbd0",
"s": "0x812cab35579598987bf4714086adf5bf136292b77dca8b8ef60e80d79f99d8b",
"yParity": "0x0"
}


Also, on Etherscan, the transaction is identified as a type 2 transaction with three fees: a Base fee, a Max fee, and a Max Priority fee:

An Etherscan transaction detail showing a Type 2 (EIP-1559) transaction with base fee, max fee, max priority fee, and burnt and transaction savings fees highlighted.


Now, let’s focus on how Type 2 transactions (EIP-1559) work.

1. Transaction submission

Submitting a transaction requires three parameters:

  • Base fee: Automatically set by the protocol.
  • Max fee:  The maximum fee a user is willing to pay.
  • Max Priority fee: Optional tip to incentivize miners/validators. 


In Web3.js, a transaction using EIP-1559 parameters looks like this:

const transaction = { 
from: senderAddress, 
to: contractAddress, 
value: web3.utils.toWei("0.01", "ether"), 
gas: 21000, 
maxFeePerGas: web3.utils.toWei("3", "gwei"), 
maxPriorityFeePerGas: web3.utils.toWei("2", "gwei"), 
}

2. Fee calculation

The protocol calculates the actual fee with the following formula:

Effective gas fee = min(Max fee, Base fee + Max Priority fee)

Note:
The above formula can be interpreted as “choose the lesser of either the Max fee or the Base fee plus Max Priority fee.”

If the Base fee increases while the transaction is pending, the Max fee ensures the transaction remains valid without exceeding the user’s budget.

For example, Alice wants to send ETH to Bob. She sets her Max fee at 50 Gwei and a Max Priority fee of 3 Gwei. At the time of submission, the Base fee is 20 Gwei, and her transaction requires 21,000 gas (the standard for a simple ETH transfer).

To determine the effective gas fee, the protocol calculates it as:

Effective gas fee =  min(Max fee, Base fee + Max Priority fee) = min(50, 20 + 3) = 23 Gwei

That means Alice pays 23 Gwei per gas instead of the full 50 Gwei she set as her Max fee.

The total cost of the transaction would be:

Total cost = 21,000 × 23 Gwei = 483,000 Gwei = 0.000483 ETH

3. Block inclusion

Miners or validators prioritize transactions based on the Max Priority fee.

Once a transaction is included in a block: 

  • The Base fee is burned by sending it to the burn address (0x0000000000000000000000000000000000000000). 
  • The Max Priority fee is paid to miners/validators.

Impact of EIP-1559

EIP-1559 didn’t just fix Ethereum’s fee market—it reshaped its economics, improved usability, and aligned the network for PoS. Here are some of its implications:

Improved user experience

Users no longer have to guess gas fees. The dynamic base fee and priority fee model improved gas estimation and prevented unnecessary failed transactions. To a large extent, this made the network more predictable.

Proof-of-Stake (PoS) alignment

Before PoS, miners relied heavily on transaction fees for earnings. EIP-1559 modified this model by introducing the priority fee, ensuring continued incentives for block producers while also preparing the network for PoS.

In PoS, when a validator is selected to propose a block, they;

  • Receive all transactions' Priority fees.
  • Earn a protocol reward for proposing the block.

Saves money

EIP-1559 has saved users millions of dollars in transaction fees through its fee refund mechanism. Users specify a maximum fee they are willing to pay, and any unused portion of that fee is automatically refunded. 

Conclusion

In the course of this guide, we’ve explored how EIP-1559 improved the Ethereum fee market and enhanced user experience by making gas estimation easier. 

We also learn how EIP-1559 introduced a deflationary mechanism through fee burning, contributing to Ethereum's long-term economic sustainability.

To learn some tips that could help you save more gas, read our article on how to optimize gas cost and save users up to 90% of transaction costs.

Related Terms

No items found.