MIP-21: Large Contract Deployment Opcode

Currently, the size of contracts deployed on Monad is bound by the 30M transaction gas limit. The state deposit cost of 200 gas per byte places a hard limit of 150,000 bytes (~146KiB) on deployed contract size, even before accounting for other sources of gas consumption. Consequently, the protocol currently limits contract deployments to 128KiB with no room to raise this limit under the standard deployment mechanism.

This MIP proposes a new deployment route that allows state deposit costs to be paid partly in MON from the deploying account’s balance, partially separating the state deposit cost from the transaction’s individual gas limit. Doing so allows contracts of up to 256KiB to be deployed without altering bounds imposed by other parts of the protocol.

1 Like

Thanks for sharing this!

One question I’d like to understand better is the demand side. I think it would be valuable to share more detail here: which teams are approaching the 128KiB limit, roughly what contract sizes they need, and why splitting into multiple contracts isn’t a viable option for them.

I ask because the change introduces a fair amount of new surface