# Proposal Preview: Operator Fee

**URL:** <https://gov.optimism.io/t/proposal-preview-operator-fee/9699>\
**Category:** Technical  Proposals\
**Created:** [February 25, 2025, 2:40pm UTC](https://gov.optimism.io/t/proposal-preview-operator-fee/9699 "2025-02-25T14:40:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![leruaa](https://avatars.discourse-cdn.com/v4/letter/l/3da27b/32.png) [@leruaa](https://gov.optimism.io/u/leruaa)\
**Post date:** [February 25, 2025, 2:40pm UTC](https://gov.optimism.io/t/proposal-preview-operator-fee/9699/1 "2025-02-25T14:40:21Z")

</div>

Please note that this is a Proposal Preview and is not an actual proposal. It is meant to allow the Collective to provide feedback and ask questions before an official proposal is published.

## Proposal Title: Operator Fee

## Proposal Type: Protocol Upgrade

## Executive Summary

The current fee formula for the OP Stack presents challenges for variants of the OP Stack that leverage Alt-DA, validity proving with ZK or a custom gas token.

Currently, only the `totalFee` for OP Stack takes into account the execution gas fee, which uses an EIP-1559 mechanism, and the L1 Data Fee.

Today, the [fee formula for the OP stack](https://docs.optimism.io/stack/transactions/fees) is computed as `totalFee = gasUsed * (baseFee + priorityFee) + l1Fee`. `l1Fee` computes the “approximate” cost of posting data to the L1 for DA.

This fee formula presents challenges for variants of the OP stack that leverage Alt-DA, ZK proving or a custom gas token. These chains make use of different resources and the existing fee formula lacks the expressiveness necessary to properly charge users for their resource consumption.

We propose the addition of a new component to the fee formula for the OP Stack which is a first step towards better resource pricing: the Operator Fee.

## Motivation

There are several variants of the OP stack that have trouble with the existing fee formula. We cover them below:

- Alt-DA: For chains leveraging Alt-DA, the `l1Fee` is not an accurate measure of the DA costs for a transaction, as it is priced according to Ethereum’s DA costs. These costs are entirely separate from the pricing of an Alt-DA layer.
- ZK Proving: For OP Stack variants that want to utilize ZK validity proofs or ZK fault proofs (for example via [OP Succinct](https://github.com/succinctlabs/op-succinct)), the cost of ZK proving a transaction is a significant resource that can not be accounted for easily in the current fee structure.

## Specifications

### Technical details

We propose the addition of 2 new rollup operator configured scalars, collectively named the Operator Fee Parameters. These scalars are named `operatorFeeScalar` and `operatorFeeConstant`, and they factor in the fee calculation as follows:

```bash
operatorFee = operatorFeeConstant + operatorFeeScalar * gasUsed / 1e6

totalFee = operatorFee + gasUsed * (baseFee + priorityFee) + l1Fee

```

These scalars will be updated via the SystemConfig L1 contract. A new fee vault, the OperatorFeeVault, is added to store the operator fee.

#### Resources

- [Spec PR](https://github.com/ethereum-optimism/specs/pull/382)
- [FMA PR](https://github.com/ethereum-optimism/design-docs/pull/186)

### Impact summary

This proposal is planned to be included in Isthmus, but the feature is disabled by default. In order to be able to set the `operatorFeeScalar` and `operatorFeeConstant` parmeters, the `SystemConfig` contract must be upgraded.

## Action Plan

This upgrade requires modifications to the node software and contracts. We have been coordinating closely with the OP Labs team on the implementation, and currently have the following PR’s under review:

- [Optimism](https://github.com/ethereum-optimism/optimism/pull/12166)
- [OP Geth](https://github.com/ethereum-optimism/op-geth/pull/388)
- [Revm](https://github.com/bluealloy/revm/pull/1960)

Once the following PR’s are reviewed and merged, these changes will be included in the Isthmus hard fork.

## L2 Contract Updates

### OperatorFeeVault

New fee vault to store the operator fees.

### GasPriceOracle

If Isthmus is enabled, the operator fee parameters can be retrieved from the SystemConfig contract on L1.

### L1Block

Includes the operator fee scalars in the L1 block.

## SystemConfig Update

The `SystemConfig` L1 contract will get upgraded to version 2.4.0 to functions to modify the operator fee.

## **Conclusion**

The Operator Fee mechanism enhances the OP Stack’s fee mechanism by addressing challenges in accurately pricing user fees when chains employ ZK proving, alt-DA, and custom gas tokens. Implementation work is underway, demonstrating technical feasibility. The new fee parameters will enable operators to accurately price their services while maintaining network sustainability. The operator fee is the first step in the direction of better resource pricing for OP Stack chains with custom variants.

We anticipate that further changes will need to be made to extend and improve the operator fee mechanism over time, but are confident that the inclusion of the operator fee will tangibly improve resource pricing.

We request the Collective’s approval to implement this improvement to the OP Stack’s fee mechanism.
