Plume vs. Ethereum
Last updated
Last updated
Plume is an EVM-compatible blockchain, and most smart contract developers will not notice any differences with Ethereum. This page outlines some of the differences between Plume and Ethereum, which are similar to the .
There is a fee for executing a transaction on Plume, just like on Ethereum. The difference is that Plume transactions must pay an extra fee to cover the cost of batch posting to Ethereum. More details are available in Gas and Fees.
When submitting a transaction to Plume, users pay for both execution on Plume and the cost of posting calldata to Ethereum. This dual cost structure results in a higher gas limit than pure execution alone. The total gas limit of an Plume block includes all transaction gas limits, accounting for Ethereum data costs. To manage potential cost variations, Ethereum assigns a much larger artificial gas limit, but the actual execution gas limit is capped at 32 million. This discrepancy explains why a block’s reported gas limit may appear inflated despite the effective execution costs.
Plume assigns its own block numbers, distinct from Ethereum’s, with multiple Plume blocks potentially fitting within a single Ethereum block. However, each Plume block is always associated with exactly one Ethereum block. In Plume smart contracts, querying block.number
returns a value close to the L1 Ethereum block number when the sequencer received the transaction, though it may not be exact. Timing assumptions based on block numbers are reliable over several hours but not within minutes, similar to Ethereum.
Plume blocks start at 0 from genesis and increase sequentially, with the sequencer determining block transitions based on transaction activity. Blocks are produced as needed, meaning block production may be sporadic during hours of low activity. When querying a Plume node’s RPC, transaction receipts return the Plume block number, with the corresponding Ethereum block number available in the l1BlockNumber
field.
Block timestamps on Plume are determined by the sequencer’s clock and are independent of the timestamp of the Ethereum block. Each Plume block timestamp must be equal to or greater than the previous one and must fall within set boundaries—no more than 24 hours in the past or one hour in the future. Since the sequencer may experience delays in posting batches to Ethereum, it has limited flexibility to adjust timestamps within the defined boundaries to maintain chain stability and prevent reorganization.
Most of the RPC methods available on Plume behave exactly the same as the methods do on Ethereum. However, some methods may result in a different output or add more information on Plume. These methods behave the same as they do on Arbitrum, so information about the exact differences is available on .
Smart contracts on Plume mostly behave the same as they do on Ethereum. However, some properties and functions on Solidity smart contracts return a different result on Plume. The operations that return a different result are the same as Arbitrum's, so more information is available on .
Arbitrary messages can be passed from Ethereum to Plume. These are commonly known as "parent chain to child chain messages". Developers using this functionality should familiarize themselves with how they work. Find more information about it in .
Similarly, Plume can also send messages to Ethereum. Find more information about them in .
Plume supports all precompiles available in both Ethereum and Arbitrum, with methods smart contracts can call the same way they can Solidity functions. You can find a full reference of them in .
Plume includes a special NodeInterface
contract available at address 0xc8
that is only accessible via RPCs (it's not actually deployed on-chain, and thus can't be called by smart contracts). Find more information about this interface in .