Skip to content

EVM compatibility

ACE runs EVM bytecode via an embedded revm engine as one of its N-VM execution domains. Standard Solidity contracts deploy and run unchanged. This page states exactly what is and is not supported, so tooling expectations are grounded rather than assumed.

Execution

Status
EVM opcodes / precompilesFull (revm)
Standard Solidity contractsDeploy and run unchanged
Transaction typesLegacy, EIP-2930 (0x01), EIP-1559 (0x02) supported
EIP-4844 blob (0x03), EIP-7702 (0x04)Not supported (rejected at execution)

JSON-RPC surface

Implemented eth_* methods include:

eth_chainId           eth_blockNumber        eth_gasPrice
eth_getBalance        eth_getCode            eth_getStorageAt
eth_call              eth_estimateGas        eth_getTransactionCount
eth_sendRawTransaction
eth_getTransactionReceipt   eth_getTransactionByHash
eth_getBlockByNumber        eth_getBlockByHash
eth_getLogs   eth_newFilter   eth_getFilterChanges   eth_getFilterLogs
eth_subscribe / eth_unsubscribe (WebSocket)
eth_feeHistory   eth_maxPriorityFeePerGas   eth_syncing   eth_accounts
net_version   net_listening   net_peerCount   web3_clientVersion

This covers what wallets (MetaMask), libraries (ethers.js, viem, web3.js), and contract frameworks (Hardhat, Foundry) need for deploy/call/test flows.

Differences from Ethereum (read before assuming parity)

AreaDifference
Gas tokenGas is paid in the ACE native token, not ETH. Fund accounts accordingly.
IdentityEVM addresses map into ACE's account namespace via a deterministic mapping; not a bare Ethereum account model.
eth_sendTransactionNot provided — the node holds no keys. Wallets sign locally and use eth_sendRawTransaction (standard for remote nodes).
debug_* / trace_*Not implemented — tracing-dependent tools (some Foundry debug, Tenderly) are limited.
Finality / consensusBlock structure is mapped; reorg semantics differ from PoW/PoS.

Bonus: beyond vanilla EVM

EVM contracts can operate ACE native tokens as standard ERC-20s at their synthetic addresses — see N-VM shared state. A plain EVM chain cannot do this.

Positioning: EVM-compatible, not Ethereum-identical. Use your existing Solidity, Foundry, MetaMask, and ethers skills; mind the gas token, identity model, and the absent tracing namespace.

Released under the Apache-2.0 License · Testnet · GitHub