Adds `baseFee` to `eth_getBlockByHash`
EIP-3041 is a proposal to add a new parameter called `baseFee` to the `eth_getBlockByHash` endpoint in Ethereum. This parameter is used to determine the minimum fee required for a transaction to be included in a block. The `baseFee` amount is adjusted up or down based on network congestion, with the goal of keeping the network operating at a target capacity. This allows wallets to automatically set gas fees for users in a reliable way, without the need for complex fee estimation algorithms. The `baseFee` is always burned, meaning it is destroyed by the protocol, and only the priority fee is paid to miners. This ensures that only ETH can be used to pay for transactions on Ethereum, and reduces the risk of miner extractable value (MEV). EIP-3041 is backwards compatible, meaning it will not affect calls related to blocks prior to the EIP-1559 fork block, and it does not introduce any technical security issues.
Video
Original
Simple Summary
Add basefee field to eth_getBlockByHash
RPC endpoint response.
Abstract
Adds baseFee
property to the eth_getBlockByHash
JSON-RPC request result
object. This property will contain the value of the base fee for any block after the EIP-1559 fork.
Motivation
EIP-1559 introduces a base fee per gas in protocol. This value is maintained under consensus as a new field in the block header structure. Users may need value of the base fee at a given block. Base fee value is important to make gas price predictions more accurate.
Specification
eth_getBlockByHash
Description
Returns information about a block specified by hash.
Every block returned by this endpoint whose block number is before the EIP-1559 fork block MUST NOT include a baseFee
field.
Every block returned by this endpoint whose block number is on or after the EIP-1559 fork block MUST include a baseFee
field.
Parameters
Parameters remain unchanged.
Returns
For the full specification of eth_getBlockByHash
see EIP-1474.
Add a new JSON field to the result
object for block headers containing a base fee (post EIP-1559 fork block).
- {
Quantity
}baseFee
- base fee for this block
Example
# Request curl -X POST --data '{ "id": 1559, "jsonrpc": "2.0", "method": "eth_getBlockByHash", "params":["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", true] }' <url> # Response { "id": 1559, "jsonrpc": "2.0", "result": { "difficulty": "0x027f07", "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000", "baseFee": "0x7" "gasLimit": "0x9f759", "gasUsed": "0x9f759", "hash": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", "logsBloom": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331", "miner": "0x4e65fda2159562a496f9f3522f89122a3088497a", "nonce": "0xe04d296d2460cfb8472af2c5fd05b5a214109c25688d3704aed5484f9a7792f2", "number": "0x1b4", "parentHash": "0x9646252be9520f6e71339a8df9c55e4d7619deeb018d2a3f2d21fc165dde5eb5", "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size": "0x027f07", "stateRoot": "0xd5855eb08b3387c0af375e9cdb6acfc05eb8f519e419b874b6ff2ffda7ed1dff", "timestamp": "0x54e34e8e" "totalDifficulty": "0x027f07", "transactions": [] "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "uncles": [] } }
Rationale
The addition of a single parameter instead of introducing a whole new endpoint was the simplest change that would be easiest to get integrated. For backward compatibility we decided to not include the base fee in the response for pre-1559 blocks.
Backwards Compatibility
Backwards compatible. Calls related to block prior to EIP-1559 fork block will omit the base fee field in the response.
Security Considerations
The added field (baseFee
) is informational and does not introduce technical security issues.
Copyright
Copyright and related rights waived via CC0.
Not miss a beat of EIPs' update?
Subscribe EIPs Fun to receive the latest updates of EIPs Good for Buidlers to follow up.
View all