Gas and Fees
Gas is used by Plume to track the cost of executing a transaction. It works the same as Ethereum gas, in the sense that every EVM instruction costs the same amount of gas that it would on Ethereum. Plume's gas calculations are very similar to Arbitrum's gas calculations, but gas is paid in $PLUME rather than in $ETH.
There are two parties a user pays when submitting a tx:
the poster, if reimbursable, for Ethereum resources such as the Ethereum calldata needed to post the tx
the network fee account for Plume resources, which include the computation, storage, and other burdens Plume nodes must bear to service the tx
The Etuerem component is the product of the Transaction's estimated contribution to its Batch's size — computed using Brotli on the transaction by itself — and Plume's view of Ethereum's data price, a value which dynamically adjusts over time to ensure the batch-poster is ultimately fairly compensated.
The Plume component consists of the traditional fees Geth would pay to stakers in Ethereum, such as the computation and storage charges applying the State Transition Function entails. Plume charges additional fees for executing Plume-specific precompiles, whose fees are dynamically priced according to the specific resources used while executing the call.
Ethereum gas pricing
Plume dynamically prices Ethereum gas, with the price adjusting to ensure that the amount collected in Ethereum gas fees is as close as possible to the costs that must be covered, over time. Ethereum costs include batch posting costs and rewards.
Batch posting costs reflect the actual cost incurred by a batch poster when submitting batch data to Ethereum. Each time a batch is posted, the Ethereum contract sends a "batch posting report" to the Plume, detailing who paid for the batch and the basefee at the time. This report enters Plume's Delayed Inbox and is processed after a delay. Upon arrival, Plume calculates the batch cost by multiplying the reported basefee by the batch's data cost. The pricer then records the amount due to the batch submitter.
Optional per-unit rewards can be set for handling transaction calldata, which may be paid to the Sequencer or any other party incurring per-byte costs. The Ethereum pricer tracks and updates the funds due to the designated reward recipient as batch posting reports arrive.
Ethereum calldata fees arise because the Sequencer or batch poster incurs gas costs when posting transactions on Ethereum as calldata. These fees are credited to the batch poster to offset expenses. Every transaction routed through the Sequencer pays a calldata fee, whereas transactions from the delayed inbox do not, as they already pay Ethereum gas fees when inserted into the delayed inbox. The Ethereum pricing algorithm determines this fee by estimating a transaction’s size, considering its compressibility, and multiplying it by the current price per byte. The cost is then converted into Plume gas units, resulting in a "poster fee" for the transaction. A dynamic pricing algorithm adjusts the per-byte price based on the balance between collected fees and actual costs incurred by batch posters, increasing or decreasing prices to maintain equilibrium.
Plume gas pricing
The gas price on Plume has a set floor, which can be queried via ArbGasInfo's getMinimumGasPrice
method. Estimating Plume gas can be done via a Plume Node’s eth_estimateGas
RPC, which returns a value sufficient to cover the full transaction fee at Plume's current gas price. Multiplying this value by the Plume gas price gives the total Ether required for a transaction. Since Ethereum calldata prices fluctuate, the estimate may change over time. Alternatively, calling NodeInterface.gasEstimateComponents()
provides the gas limit for a transaction, with the total cost calculated by multiplying the gas estimate by the Plume basefee.
Plume gas fees function similarly to Ethereum’s gas system, where the gas used by a transaction is multiplied by the current basefee to determine the total fee. The basefee is managed by an "exponential mechanism" similar to Ethereum’s EIP-1559, adjusting based on network usage. It compares gas consumption to a speed limit, currently set at 7,000,000 gas per second on Plume Mainnet, and maintains a backlog that increases when gas is used and decreases every second by the speed limit amount. If the backlog grows, the basefee rises to slow gas usage; if it shrinks, the basefee decreases to allow more transactions. The basefee follows an exponential function of the backlog, where parameters control how quickly the price escalates.
Transaction prioritization on Plume follows a first-come, first-served basis, meaning tips are ignored, and users always pay the basefee regardless of any tip amount.
Total fee and gas estimation
The total fee charged to a transaction is the Plume basefee, multiplied by the sum of the Plume gas used plus the Ethereum calldata charge. As on Ethereum, a transaction will fail if it fails to supply enough gas, or if it specifies a basefee limit that is below the current basefee. Ethereum also allows a "tip" but Plume ignores this field and never collects any tips.
Last updated