EVM compatibility
Which hard forks, opcodes and precompiles are available.
TestnetVerified Sep 27, 2026
On this page
Compile target#
The Testnet runs the Berlin, London, Shanghai and Cancun hard forks. Prague and Osaka are not active. Set evmVersion to cancun in every compiler configuration.
Solidity 0.8.30+ defaults to Prague
Recent compilers target Prague by default. Pincancun explicitly or your bytecode may use features this chain does not have.Feature support#
Each row was tested with a contract-creation eth_call against the Testnet.
| Feature | Fork | Supported |
|---|---|---|
PUSH0 | Shanghai | Yes |
TSTORE / TLOAD (EIP-1153) | Cancun | Yes |
MCOPY (EIP-5656) | Cancun | Yes |
BLOBBASEFEE (EIP-7516) | Cancun | Yes |
KZG point-evaluation precompile (0x0a) | Cancun | Yes |
CHAINID, BASEFEE | Istanbul / London | Yes |
| EIP-7702 set-code transactions (type 4) | Prague | No |
BLS12-381 precompiles (0x0b…) | Prague | No |
| EIP-2935 block-hash history contract | Prague | No |
| EIP-4788 beacon block root contract | Cancun (beacon chain) | No |
CLZ opcode | Osaka | No |
Caveats#
- No randomness from
block.prevrandao: under QBFT it is a constant. Never use it as a source of randomness. block.basefeein simulations: insideeth_callwithout a gas price it reads as 0. Do not rely on it in simulated calls.- Blobs: blob fields exist (Cancun) but there is no use for blob transactions on this network.
- Canonical deployers: the CREATE2 deployer, Multicall3 and Permit2 are at their usual cross-chain addresses, so libraries that assume them work unchanged. See the explorer for the full token and contract list.
Something wrong or missing on this page? Send developer feedback.