Skip to main content
StableNet is fully EVM-compatible with one exclusion (blob opcodes) and one addition (Anzeon BLS precompile).

Supported instruction set

StableNet uses the Anzeon EVM instruction set, which equals London + Shanghai with partial Cancun support:

Tool configuration

Set evmVersion to shanghai in all your tooling. Using cancun causes compilation errors or runtime failures. Hardhat (hardhat.config.js):
Foundry (foundry.toml): Foundry defaults to shanghai for Solidity 0.8.20+. No change needed unless you explicitly set evm_version in your profile.

Excluded: blob opcodes

The following Cancun opcodes are not supported: Contracts that use these opcodes will revert at runtime. Do not set evmVersion: "cancun" in Solidity compiler settings.

Added: Anzeon precompile

StableNet adds one custom precompile: This precompile is used internally by the consensus layer. Application contracts do not need to call it directly.

Standard precompiles

All standard EVM precompiles are available at their canonical addresses:

Native system contracts

StableNet also includes Go-implemented system contracts that participate in the normal CALL flow: These are internal system contracts. Application contracts interact with them indirectly through NativeCoinAdapter.

StableNet-specific behavior

The following behaviors differ from standard Ethereum EVM execution: Blacklist status is managed by the GovCouncil contract (0x…1004) and is stored in each account’s Extra field. These checks occur at the EVM level, not the RPC level — a transaction to a blacklisted address will revert even if it passes eth_estimateGas at the time of estimation.

Developer benefits

  • All existing Solidity libraries and patterns work without modification
  • EIP-2930 access lists and EIP-1559 fees are supported
  • Multicall3, OpenZeppelin contracts, and standard tooling work out of the box