EVM Differences from Ethereum

Opcodes

OpcodeScroll Behavior
BLOCKHASHReturns keccak(chain_id || block_number) for the last 256 blocks.
COINBASEReturns the fee vault address (predeployed contract 0x5300000000000000000000000000000000000005).
DIFFICULTY / PREVRANDAOAlways return 0.
SELFDESTRUCTDisabled. If the opcode is encountered, the transaction will be reverted.

Precompiled Contracts

AddressNameScroll behavior
0x03RIPEMD-160Currently not supported.
0x05modexpRestrict the input values B, E, M to unsigned integers less than 22562^{256}.
0x08ecPairingThe inputs are still multiple of 6 32-byte values, but limit the number of tuples to at most 4.
0x09blake2fCurrently not supported.
0x0apoint evaluationCurrently not supported.

The remaining precompiled contracts have the same behavior as Ethereum. However, their maximum usage within a block is constrained by a limit tied to the zkEVM circuit capacity.

EIPs

Our sequencer was developed based on the London fork initially. Since then we have adopted most features from London, Shanghai, and Cancun.

Our EIP-1559 fee market behaves differently: the sequencer sets the L2 base fee (based on the L1 base fee), and we don’t burn ETH.

What's Next

Stay up-to-date on the latest Scroll Developer news
Roadmap updates, virtual and live events, ecosystem opportunities and more
Thank you for subscribing!

Resources

Follow Us