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 equalsLondon + Shanghai with partial Cancun support:
Tool configuration
SetevmVersion to shanghai in all your tooling. Using cancun causes compilation errors or runtime failures.
Hardhat (hardhat.config.js):
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
Related
- What is StableNet — architecture overview
- Contract Addresses — full address reference
- Deploy with Hardhat —
evmVersionin practice

