Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions pages/notices/_meta.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"pectra-fees": "Pectra user fees notice",
"pectra-changes": "Preparing for Pectra breaking changes",
"superchain-withdrawal-pause-test": "Superchain withdrawal pause test",
"holocene-changes": "Preparing for Holocene breaking changes",
"upgrade-15": "Upgrade 15: Isthmus Hard Fork",
"upgrade-14": "Upgrade 14: MT-Cannon and Isthmus L1 Contracts",
"upgrade-13": "Upgrade 13: OPCM and incident response improvements",
"blob-fee-bug": "Superchain testnets' blob fee bug",
"pectra-changes": "Preparing for Pectra breaking changes",
"holocene-changes": "Preparing for Holocene breaking changes",
"sdk-deprecation": "Preparing for Optimism SDK deprecation",
"custom-gas-tokens-deprecation": "Preparing for Custom Gas Tokens deprecation"
"custom-gas-tokens-deprecation": "Preparing for Custom Gas Tokens deprecation",
"sdk-deprecation": "Preparing for Optimism SDK deprecation"
}
30 changes: 18 additions & 12 deletions pages/notices/pectra-fees.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,40 @@ categories:
is_imported_content: 'false'
---

import { Callout } from 'nextra/components'

# Pectra impact on user fees and chain profitability

The Ethereum L1 Pectra upgrade has introduced changes to calldata gas costs via [EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) that may affect OP Stack chain profitability in specific configurations and market conditions. This notice outlines the potential impact on your chain and recommends specific actions.

[EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) increases the amount of gas payable for calldata transactions. These include such transactions as those used by OPStack chains *before the [Ecotone upgrade](https://specs.optimism.io/protocol/ecotone/overview.html)* when blob data availability (blob DA) was introduced.
[EIP-7623](https://eips.ethereum.org/EIPS/eip-7623) increases the amount of gas payable for calldata-heavy transactions. These include such transactions as those used by OPStack chains *before the [Ecotone upgrade](https://specs.optimism.io/protocol/ecotone/overview.html)* when blob data availability (blob DA) was introduced.

Blob DA has now been the default and recommended option for the OPStack for some time, so almost all chains make use of it. In order to continue to optimize for chains operating with blob DA, the Optimism protocol's current DA fee pricing formula has remained unchanged despite Pectra activating on Ethereum.
Blob DA has now been the default and recommended option for the OPStack for some time, so almost all chains make use of it. In order to continue to optimize for chains operating with blob DA, the Optimism protocol's current DA fee pricing formula has remained unchanged despite Pectra activating on Ethereum. This has allowed chains using blob DA to continue without updating their fee config.

Chains configured for blob data availability remain entirely unaffected by the Pectra upgrade. However, chains configured for calldata (i.e. operating in a legacy DA mode) may experience a reduction in profitability. It possible for such chains to be making a loss on data availabilty costs under certain market conditions. Therefore all chains should check their fee scalar config.
Chains configured for blob data availability remain entirely unaffected by the Pectra upgrade. However, chains configured for calldata (i.e. operating in a legacy DA mode) may experience a reduction in profitability. It is possible for such chains to be making a loss on data availability costs under certain market conditions. Therefore all chains should check their fee scalar config.

## Actions required

Since the Ecotone upgrade, the Optimism protocol prices L2 transactions using a function that incorporates the L1 base fee as well as the L1 blob base fee. The other inputs are the so-called "Ecotone scalars": operator-controlled parameters stored in the SystemConfig contract which can be used to tune the chain's (approximate) target profit margin for DA.

Please review your [Ecotone scalar chain configuration](/operators/chain-operators/management/blobs). If your chain uses a zero blob base fee scalar, meaning it's configured to price for calldata only, you may need to update the base fee scalar and or the blob base fee scalar. Otherwise, no action is necessary.
Please review your [Ecotone scalar chain configuration](/operators/chain-operators/management/blobs).

If your batcher is configured to submit using calldata *only*, then you should:
<Callout type="info">
If your chain uses a zero blob base fee scalar, meaning it's configured to price for calldata only, you may need to update the base fee scalar and/or the blob base fee scalar. Otherwise, no action is necessary and the rest of this section does not apply.
</Callout>

* scale your base fee scalar by 10/4.
### Chains charging for calldata DA and spending on calldata DA
If your chain uses a zero blob base fee scalar and your batcher is configured to submit using calldata *only*, then you should take the opportunity to check your chain's profit margin according to [this guide](/operators/chain-operators/management/blobs) and make any adjustments to your Ecotone scalars as necessary. This will ensure that, since you are paying exclusively for calldata DA, you are charging users appropriately such that your target profit margin is as desired.

This will ensure that, since you are paying exclusively for calldata DA, you are charging users appropriately such that your target profit margin is the same as it was before Pectra.
If your profit margin was perfectly tuned before Pectra, then you should scale your base fee scalar by 10/4.

If your batcher is configured to submit using blob DA, or configured to automatically choose the cheaper of the two DA modes, then you should adjust your Ecotone scalars for blob DA pricing (meaning a nonzero blob base fee scalar). You are referred back to [this guide](/operators/chain-operators/management/blobs). Doing so will ensure that you are charging accurately for using blob DA. Without such a change it is likely that you are overcharging users most of the time, and undercharging them in the rare occasions where blob DA is more expensive than calldata DA on Ethereum mainnet.
### Chains charging for calldata DA and spending on blob DA
If your chain uses a zero blob base fee scalar and your batcher is configured to submit using blob DA, or configured to automatically choose the cheaper of the two DA modes, then you should adjust your Ecotone scalars for blob DA pricing (meaning a nonzero blob base fee scalar). You are referred back to [this guide](/operators/chain-operators/management/blobs). Doing so will ensure that you are charging accurately for using blob DA. Without such a change it is likely that you are overcharging users most of the time, and undercharging them in the rare occasions where blob DA is more expensive than calldata DA on Ethereum mainnet.

As ever, you may continue to tweak the Ecotone scalars as desired in order to adjust the profitability of your chain.

### Technical References
### Technical references

* [Optimism Protocol Specification - Ecotone L1 Cost Fee Changes](https://specs.optimism.io/protocol/exec-engine.html#ecotone-l1-cost-fee-changes-eip-4844-da)
* [Optimism Protocol Specification - Fjord Execution Engine Fees](https://specs.optimism.io/protocol/fjord/exec-engine.html#fees)
* [Implementation Source Code](https://github.com/ethereum-optimism/op-geth/blob/3d7afdc2701b74c5987e31521e2c336c4511afdf/core/types/rollup_cost.go#L527)
* [Optimism protocol specification - Ecotone L1 cost fee changes](https://specs.optimism.io/protocol/exec-engine.html#ecotone-l1-cost-fee-changes-eip-4844-da)
* [Optimism protocol specification - Fjord execution engine fees](https://specs.optimism.io/protocol/fjord/exec-engine.html#fees)
* [Implementation source code](https://github.com/ethereum-optimism/op-geth/blob/3d7afdc2701b74c5987e31521e2c336c4511afdf/core/types/rollup_cost.go#L527)
2 changes: 1 addition & 1 deletion pages/operators/chain-operators/management/blobs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ blobs back to using calldata.
information is tuned to a network like OP Mainnet.

<Callout type="warning">
Since the Pectra upgrade on L1, chains which exclusively use calldata DA need to scale up their BaseFeeScalar by 16/10. See [this notice](/notices/pectra-fees).
Since the Pectra upgrade on L1, chains which exclusively use calldata DA need to scale up their BaseFeeScalar by 10/4. See [this notice](/notices/pectra-fees).
</Callout>

Chains can update their fees to increase or decrease their margin. If using calldata, then `BaseFeeScalar` should be scaled to achieve the desired margin.
Expand Down
1 change: 0 additions & 1 deletion words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ authrpc
autorelay
Autorelay
autorelayer
availabilty
basefee
bcde
betanet
Expand Down