--- tags: 1559 --- # EIP-1559 JSON RPC Changes The [eth1.0-apis repository](https://github.com/ethereum/eth1.0-apis) is not versioned (yet!) and hence it can be hard to track the various changes introduced by EIP-1559. Here is a list to make this easier. ## General Comments EIP-1559 introduces a new transaction type (`0x02`) and adds a field to the block header (`baseFeePerGas`). At a high level, anything which either returns a transaction or a block will be affected post-1559. ## API Changes The following APIs calls are changed with the introduction of EIP-1559: * `eth_call` * This API has the most substantial behavior modifications. They are described [here](https://github.com/ethereum/go-ethereum/pull/23027). * `eth_getBlockBy*` endpoints * A new field `baseFeePerGas` is added on post-London blocks * `eth_getRawTransaction*` endpoints * RLP encoded EIP-1559 transactions may be returned post-London * `eth_getTransactionBy*` endpoints * `gasPrice` now interpreted as `maxFeePerGas` before the tx is mined and `effectiveGasPrice` after it's mined (for EIP-1559 txs). This field is deprecated (no EOL set yet) for EIP-1559 transactions. * EIP-1559 transactions will have two new fields, `maxPriorityFeePerGas` and `maxFeePerGas` * `eth_getTransactionReceipt` * A new field `effectiveGasPrice` is added to the receipt. Pre-London, it is equal to the transaction's `gasPrice`. Post-London, it is equal to the actual gas price paid for inclusion. This calculation differs depending if the transaction is an EIP-1559 transaction or not. * `eth_getUncleBy*` endpoints * A new field `baseFeePerGas` is added on post-London blocks * `eth_sendTransaction` * EIP-1559 transaction fields `maxPriorityFeePergas` and `maxFeePerGas` are now supported. Clients will calculate reasonable values for these fields if they're omitted. Legacy transactions can still be sent by specifying a `gasPrice` * `eth_estimateGas` * Either `gasPrice` or `maxFeePerGas` and `maxPriorityFeePerGas` are now required. Before, it was okay to omit `gasPrice` because it could be filled with `0`. Now the `baseFeePerGas` must be taken into account, and the fee payment must be large enough to cover the base fee. * `eth_sendRawTransaction` * This method now supports RLP encoded EIP-1559 transactions Note:`*` at the end of a name refers to all variations of this API call. Additionally, the following JSON RPC endpoint was introduced: * `eth_feeHistory`, which returns historical data about transaction fees. More information on it can be found [here](https://github.com/zsfelfoldi/feehistory). * Maybe mention that geth will have a breaking change for this endpoint to support hex-encoded values vs. integers? (https://github.com/ethereum/go-ethereum/pull/23239)