| description | How MegaEVM differs from standard Ethereum — contract size limits, gas forwarding, and precompile overrides. |
|---|
MegaEVM is MegaETH's execution environment. It is fully compatible with Ethereum smart contracts while introducing optimizations for MegaETH's unique architecture.
MegaEVM builds on established standards. Its latest hardfork, Rex4, is based on Optimism Isthmus, which in turn is adapted from Ethereum Prague. This means:
- All standard Solidity contracts work on MegaETH.
- Standard development tools (Hardhat, Foundry, Remix, etc.) are compatible.
- Existing Ethereum libraries and patterns apply.
MegaEVM introduces a few changes to accommodate MegaETH's low fees and high capacity. The most important change is the multidimensional gas model and resource limits. In MegaEVM, transactions consume two types of gas: compute gas, which models computation at large and is identically defined as Ethereum's gas; and storage gas, a new concept that models the storage subsystem in particular. Similarly, MegaEVM caps resource usage of transactions and blocks using rules that each target an individual type of resource. Developers should consider these changes in contrast to Ethereum's EVM, where gas is the singular metric for metering and limiting resource consumption.
| Feature | Ethereum | MegaETH | Remarks |
|---|---|---|---|
| Max contract size | 24 KB | 512 KB | |
| Max initcode size | 48 KB | 536 KB | |
| Gas forwarding rule | 63/64 | 98/100 | As defined in EIP-150. |
| Gas model | Unidimensional | Multidimensional | Compute gas and storage gas. Compute gas is identical to Ethereum's gas. |
| Resource limits | Unidimensional | Multidimensional | 4 limits in addition to total gas limit specified by sender. |
| Base intrinsic gas | 21,000 | 60,000 | 21,000 compute gas plus 39,000 storage gas. |
For the full gas model details, see Gas Model.
Reading volatile data — block.timestamp, block.number, oracle storage, or the beneficiary account — triggers a detention cap of additional 20,000,000 compute gas from the point of access.
This ensures transactions with external dependencies yield quickly and don't block parallel execution.
For the full list of triggers, best practices for structuring contracts around this cap, and Solidity examples, see Volatile Data Access. For the formal specification, see Gas Detention.
MegaETH supports contracts up to 512 KB in size, increased from 24 KB in Ethereum. For the formal specification, see Contract Limits.
The SELFDESTRUCT opcode follows EIP-6780 semantics.
It only destroys a contract when called within the same transaction that created the contract.
In all other cases, SELFDESTRUCT behaves as a simple Ether transfer without destroying the contract or clearing its storage.
For the formal specification, see SELFDESTRUCT.
On Ethereum, resetting a storage slot to its original value within the same transaction refunds part of the gas. On MegaETH, storage gas is not refunded when a slot is set back to its original value — the full storage gas cost is still charged.
{% hint style="success" %}
Use transient storage (EIP-1153 TSTORE/TLOAD) for scratch data that only needs to persist within a transaction.
This avoids storage gas costs entirely.
{% endhint %}
MegaETH allows a caller to forward at most 98/100 of remaining gas to a callee. The parameter is 63/64 in Ethereum.
{% hint style="danger" %} Migration note: Contracts that compute gas forwarding amounts assuming the standard 63/64 rule (EIP-150) will see different behavior. The parent call frame retains 2% instead of ~1.6%, so subcalls receive slightly less gas. Review any patterns that rely on precise gas forwarding calculations. {% endhint %}
For the formal specification, see Gas Forwarding.
MegaETH inherits all precompiles from Optimism Isthmus, which includes Ethereum Prague precompiles, EIP-2537 BLS12-381 precompiles, and RIP-7212 P256VERIFY. Two precompiles have adjusted gas costs:
| Precompile | Address | Cost Override |
|---|---|---|
| KZG Point Evaluation | 0x0A |
100,000 gas (2× the standard Prague cost of 50,000) |
| ModExp | 0x05 |
EIP-7883 gas schedule (raises the cost floor for large-exponent calls) |
For the formal specification, see Precompiles.
- Gas Model — full dual gas model and resource limits
- System Contracts — native oracle interface and high-precision timestamp
- Volatile Data Access — compute gas cap on volatile data reads
- EVM Specification — formal normative specification