References: https://community.optimism.io/docs/developers/build/transaction-fees/
Unlike L1 (Ethereum) transactions fees which will burn the base fee, pass priority fee to miners, distribute a block reward, Base (or the op stack) L2s have a different fee calculation mechanism.
On a high level, for a given transaction, it will be charged
The combination of L1 fee + L2 fee equals the total amount of fees that a transaction pays.
For fee distributions, the biggest difference from L1 mechanism is that Base
Base do not charge any fees for system transactions as they are either paid on L1 (Deposited Transaction) or they are auto generated system transactions which is purely read from L1 (L1 Attributes Deposited transaction)
For legacy transactions of type 0, the total transaction fee equals
Base will dynamically adjust fees based on demand. There are 2 parts of fee adjustments:
As a rollup, base needs to periodically commit its data (transaction batches) and state root to L1 for various purposes. In order to cover that cost, L1 data fee configuration values are managed by the SystemConfig contract on L2 and are updated by the derivation process for each L1 block.
The fee adjustment mechanism is exactly like L1. For example, it follows EIP-1559 standard for EIP-1559 transactions, All you need to know about EIP-1559 provides a very good explanation of how it works.