On August 5, 2021, the London hard fork saw the rollout of one of the largest updates to the Ethereum blockchain so far: EIP-1559, which changes how the fee market works on the network. A new base fee was introduced, which is burned rather than paid out to miners, and users can now specify a maximum fee and priority fee for transactions, rather than a gas price.
In this article, we will go over all the changes made by EIP-1559 and what they mean for you.
What is EIP-1559?
Previously, Ethereum's fee market was based on a first-price auction. Since miners used to get all the transaction fees, generally the transaction with the highest "bid" (gas price) would be confirmed first. EIP-1559 changed this in order to make transaction fees more stable and predictable by introducing a base fee per gas unit for all transactions, which is the minimum you will have to pay for each transaction. Depending on the current network congestion (how full blocks are), the base fee can go up or down.
"Fullness" of blocks is determined by how much gas all the transactions in the block use. If the target gas usage for a block is 15,000,000, and there are four transactions using 5,000,000 gas each, that means that the total gas usage for the block is higher than the target, so the base fee will go up. If there's only one transaction using 5,000,000 gas, the base fee will go down.
The base fee, rather than being paid out to miners, is burned. In addition to the base fee, you can choose to pay a priority fee ("tip"), which is paid out to miners. Generally, this can be a small amount (like 1–2 Gwei) and is only essential during times of network congestion.
New Transaction Format
To make these changes possible, EIP-1559 introduced a new transaction format based on the EIP-2718 typed transaction envelope.
0x2 || RLP([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data, accessList, signatureYParity, signatureR, signatureS])
The transaction type for this new format is 0x2, and the payload is RLP-encoded, similar to legacy transactions. The differences between this type and legacy transactions include the following:
- The chain ID is now part of the transaction payload, rather than being encoded in the signature v value, as was defined in EIP-155.
- Two new fields are introduced: maxPriorityFeePerGas and maxFeePerGas, as a replacement for the old gasPrice field. We will go into further detail on those below.
- You can specify accessList in the EIP-1559 transaction, rather than needing the EIP-2930 “optional access lists” transaction type.
- The signature v value was replaced with signatureYParity, which is now either 0 or 1 depending on which y-coordinate on the elliptic curve is used, rather than 27, 28 or 35, 36, …, for EIP-155 transactions.
The old-style transactions (legacy or "type-0" transactions) still work, but will (usually) result in overpaying for transactions. It works by using the legacy gas price for both the max priority fee per gas and max fee per gas. This will also be explained further below.
Max fee per gas & max priority fee per gas
EIP-1559 introduces a max fee (per gas) and a max priority fee (per gas). These determine how much you are willing to pay per gas used by the transaction. Similarly to how the gas price works, if your transaction has a max fee per gas of 10 Gwei and your transaction uses 21,000 gas, you will end up paying (at most) 21,000 × 10 Gwei = 0.00021 Ether.
How much you actually pay depends on the base fee, however. With a max fee of 10 Gwei and a base fee of 5 Gwei, you will end up paying only 5 Gwei per gas (ignoring the priority fee for now). The max fee per gas specifies how much you are willing to pay at most. If this number is lower than the current base fee, your transaction won't be confirmed (until the base fee drops or the transaction is removed from the transaction pool).
The priority fee is paid on top of the base fee, so how much you will actually end up paying is base fee + (max) priority fee, assuming that the max fee is more than the current base fee.
Not all applications may support EIP-1559 (yet). When sending a legacy transaction (with a gas price, rather than a max fee and priority fee), the gas price value is used as both the max fee and priority fee. Let's say the current base fee is 10 Gwei and you send a transaction with a gas limit of 20 Gwei (so a max fee and priority fee of 20 Gwei). In this case, you will end up paying 10 Gwei for the base fee and the remaining 10 Gwei will be paid out to the miner. This results in you overpaying for the transaction, when compared to using a lower max priority fee.
What does it mean for you?
A common misconception is that EIP-1559 will make the gas fees on Ethereum go down. This is not the goal of EIP-1559, however, and in times of high network congestion (e.g., during ICOs or NFT sales) the base fee can go up quite a bit. The average transaction fee should be a lot more predictable however, now that the base fee isn't based on a first-price auction. Because the block size can be bigger, this should generally mean that your transactions will be confirmed faster.
MyCrypto will automatically try to determine the best max fee and max priority fee for your transaction, and in most situations you don't have to worry about these.
Have you tried sending an EIP-1559 transaction yet?
At the time of writing, EIP-1559 has been live for nearly a month. The hard fork launched with great fanfare and transactions with the new type are now sending without issue.
If you haven’t tried sending one yet, try it on MyCrypto! MyCrypto supports sending EIP-1559 transactions with both MetaMask and Ledger, with Trezor and WalletConnect support coming soon.