Skip to main content

Differences between Ethereum and Linea

EVM opcodes

important

Linea uses the London version of the Ethereum Virtual Machine (EVM). All EVM opcodes are managed identically to Ethereum London unless presented in the following table.

Solidity 8.23 and later compiles newer versions of the EVM by default. Use the solc --evm-version london command to ensure compatibility with Linea.

Check out Ethereum's history to learn about major milestones, forks, and updates to the blockchain.

⚠️ At the moment we do not support the eth_newFilter and eth_newBlockFilter RPC calls.

Opcode nameEthereumLineaExplanation
BLOBHASHReturns a versioned hash.n/aUnavailable on Linea due to being introduced in the Cancun upgrade.
BLOBBASEFEEReturns the value of the blob base-fee of the current block.n/aUnavailable on Linea due to being introduced in the Cancun upgrade.
DIFFICULTY/PREVRANDAOReturns the RANDAO value from the previous blockReturns a fixed number: 2In Ethereum, PREVRANDAO was previously known as DIFFICULTY. It was renamed to PREVRANDAO in EIP-4399 and its functionality changed due to the switch from PoW to PoS. PREVRANDAO returns a full 256-bit value that represents the randomness beacon output of the previous block. For more, see the 'Security Considerations' section of EIP-4399.
MCOPYCopies memory areas, allowing the destination and source to overlap.n/aUnavailable on Linea due to being introduced in the Cancun upgrade.
PUSH0Pushes the constant value 0 onto the stackPushes the constant value 0 onto the stack if correct version of Solidity compiler is configuredThe PUSH0 opcode compatibility was introduced in Solidity compiler version 0.8.20, which came after the London release. However, Linea currently supports Solidity compiler version 0.8.19 and lower, which aligns with the London release of the Ethereum mainnet. To resolve this issue, recompile your contract using Solidity version 0.8.19 or lower.
TLOADLoad word from transient storage.n/aUnavailable on Linea due to being introduced in the Cancun upgrade.
TSTORESave word to transient storage.n/aUnavailable on Linea due to being introduced in the Cancun upgrade.

Consult the Ethereum Foundation's Opcode Reference for more.

Evmdiff is also a useful resource for comparing Linea with Ethereum.

Precompiles

Precompiles as transaction recipients

On Linea, transactions cannot set the recipient of a transaction (the address in to) as a precompile. The to address of transactions cannot be in the range 0x01-0x09.

MODEXP

MODEXP (0x05) on Linea currently only supports arguments (base, exponent, modulus) that do not exceed 512-byte integers.

Point evaluation

The point evaluation precompile was introduced in EIP-4844, and is therefore unavailable on Linea.

JSON RPC API

Linea uses the standard Ethereum JSON RPC API methods. However, in a few cases, methods differ from those on Ethereum. These methods are documented in the reference section.