Six Glamsterdam EIPs for Monad
plus networking and informational EIPs
MIP-15 is in Review and is not active on any network. It takes six EIPs from Ethereum's Glamsterdam upgrade, lowers the gas rate on one of them, and explains why Monad leaves the others out.
The information on this page should not be quoted. Please refer to MIP-15 for the authoritative spec.
The six EIPs
Who each one affects, and what is different on Monad.
Native transfers emit a log
Moving a nonzero amount of MON to another account emits a log shaped like an ERC-20 Transfer event. That covers plain sends and value moved by CALL, CREATE, CREATE2 and SELFDESTRUCT.
On Monad
Indexers can follow MON with the same log filter they use for tokens. Today that needs call traces.
SLOTNUM opcode
Opcode 0x4b pushes the block's slot number. It costs 2 gas.
On Monad
The slot number is the consensus round. The client started passing the round into the execution context in v0.15.2.
Access lists cost more
Every access list entry pays an extra charge for its bytes, on top of the existing per-entry cost.
On Monad
40 gas per byte instead of Ethereum's 64. That is 800 gas per address and 1,280 per storage key.
Deterministic CREATE2 factory
The CREATE2 factory at 0x4e59…956C must exist, so contracts can deploy to the same address on every chain.
On Monad
Already deployed on mainnet and testnet. Only local development networks change.
DUPN, SWAPN, EXCHANGE
DUP1 to DUP16 reach the top 16 stack items. DUPN reaches item 235 and SWAPN item 236. EXCHANGE swaps any two of the top 30. Each costs 3 gas.
On Monad
Compilers can use them to avoid “stack too deep” errors. Deployed contracts only benefit after recompiling with a compiler that emits them.
SELFDESTRUCT stops burning
A contract created and destroyed in the same transaction used to burn its balance if it named itself as the beneficiary. Now the balance stays.
On Monad
Code, storage and nonce are still cleared. What remains is an account that holds only a balance.
Which transfers emit a log
Pick a transaction. EIP-7708 adds one log for each nonzero transfer of MON to a different account.
A user sends 1 MON to a router contract, which CALLs a recipient with the same 1 MON.
Before MIP-15
No logs
With MIP-15 · 2 logs
Emitted by 0xffff…fffe
topic0 0xddf252ad…b3ef · Transfer(address,address,uint256), same as ERC-20
What the access list surcharge costs
EIP-7981 charges for the bytes in an access list: 20 per address, 32 per storage key. Monad's rate is 40 gas per byte. Ethereum's is 64.
Monad surcharge
16,960
gas
Ethereum surcharge
27,136
gas
One key per page is enough
Under MIP-8, listing one storage key warms its whole 4 KB page (128 slots). Listing only one key per page gives the same warm slots for less surcharge.
Shows only the new surcharge. The existing per-entry access list cost still applies.
What Monad leaves out
Glamsterdam has more EIPs than these six. The MIP gives a reason for each one Monad skips.
Block-level access lists
EIP-7928
A block-level access list is built by executing the block. Monad proposers don't execute the block they propose, because execution runs after consensus. The proposer has no way to fill in the list.
How asynchronous execution works →Consensus layer changes
EIP-8045 · EIP-8061 · EIP-8282 · EIP-7688 · EIP-7732
These change Ethereum's beacon chain and proposer-builder separation. Monad runs its own consensus, MonadBFT.
Ethereum's new gas model
EIP-2780 · EIP-7778 · EIP-7976 · EIP-8037 · EIP-8038
These split gas into separate resources and reprice state access. Monad already prices storage its own way (MIP-8) and may pick its own metering later. Skipping EIP-7976 keeps Monad's calldata floor at 40 gas per byte, which is where the EIP-7981 rate comes from.
Bigger contracts
EIP-7954
Monad already allows 128 KB contracts (MIP-2).
Networking and informational EIPs
Monad doesn't use Ethereum's devp2p networking. Informational EIPs change no protocol behavior.
Continue the discussion on Monad Forum
Questions, feedback, or a better idea? Weigh in on the forum thread.
Open forum thread