With the latest London upgrade on Ethereum, we've introduced corresponding changes in public BigQuery datasets.
New fields:
In `bigquery-public-data.crypto_ethereum.blocks`:
- `base_fee_per_gas` - Protocol base fee per gas, which can move up or down
In `bigquery-public-data.crypto_ethereum.transactions`:
- `max_fee_per_gas` - Total fee that covers both base and priority fees
- `max_priority_fee_per_gas` - Fee given to miners to incentivize them to include the transaction
- `transaction_type` - Transaction type, for future use - `receipt_effective_gas_price`
- The actual value per gas deducted from the senders account. Replacement of gas_price after EIP-1559
`receipt_effective_gas_price` is backfilled and is equal to gas_price for pre-EIP-1559 transactions. This means that this field can be used in place of gas_price for most purposes. For example if previously to calculate gas cost for a transaction you'd do `receipt_gas_used * gas_price`, now you should do `receipt_gas_used * receipt_effective_gas_price`
However, part of the gas costs is now burnt, so previously `receipt_gas_used * gas_price` would go to the miner, and after the EIP-1559 only `receipt_gas_used * (receipt_effective_gas_price - block.base_fee_per_gas)` would go to the miner, the remaining wei will be burnt.
This is reflected in this PR for ETH balance calculation
More resources on EIP-1559:
- Explanation by Vitalik
- Explanation in ethereum.org docs
- All formulas e.g. how base_fee_per_gas is calculated
- Other resources
Check out our Gas Tracker dashboard to track EIP-1559 adoption.