Skip to main content

EVM Compatibility

Xphere targets Ethereum Cancun-level EVM compatibility. The intent is bytecode equivalence — contracts deployed on Ethereum mainnet should compile, deploy, and execute identically on Xphere.

Hard Fork Equivalence

Ethereum UpgradeStatus on Xphere
Homestead
Byzantium
Constantinople
Istanbul
Berlin
London (EIP-1559)
Shanghai (PUSH0)
Cancun (EIP-4844 blobs, transient storage)✅ EVM features
⚠️ EIP-4844 blob carry: not applicable
Prague / Pectra🛠 Planned

Opcodes

All opcodes through Cancun are supported, including:

  • PUSH0 (Shanghai)
  • TLOAD / TSTORE (transient storage, Cancun)
  • MCOPY (memory copy, Cancun)
  • BLOBHASH returns 0x0 (blobs not used by Xphere data layer)
  • BLOBBASEFEE returns 0x1 constant

Precompiles

AddressFunctionSupported
0x01ecRecover
0x02sha256
0x03ripemd160
0x04identity
0x05modExp
0x06bn256Add
0x07bn256ScalarMul
0x08bn256Pairing
0x09blake2f
0x0apoint_evaluation (KZG)✅ (returns zero proof)

Differences from Ethereum

AreaEthereumXphere
Block time~12 s~1 s
FinalityProbabilistic (PoS slots)Instant (PBFT) on Main Chain
Native tokenETHXP
Chain ID1 (mainnet)20250217 (mainnet)
Min priority fee01 gwei
Blob carry (EIP-4844)YesNo (op present, no data layer)

Caveats for Ported Contracts

  1. Block time assumptions — Many DeFi protocols hard-code block.timestamp checks assuming 12 s blocks. Audit any block.timestamp + N arithmetic for the 1 s cadence.
  2. Reorg assumptions — Xphere Main Chain finalizes within 1 block via PBFT. Some bridge code waits N confirmations for probabilistic finality; you can safely shorten this.
  3. Gas price — Use EIP-1559 fields (maxFeePerGas, maxPriorityFeePerGas). Legacy gasPrice works but is converted internally.

Verifying Equivalence

# Compile the same source against both targets
solc --evm-version cancun --bin contracts/MyContract.sol

Bytecode output should be byte-identical between Ethereum and Xphere targets when both use --evm-version cancun.

See Also