EIP Proposal: CREATE2 contract factory precompile for deployment at consistent addresses across networks

I forget which (maybe it was Optimism) but at least one EVM compatible change already did this, so I think we can assert it isn’t out of the question at least. I’m hesitant to bake this into Ethereum when it can be baked into other chains as needed instead. At the same time, I appreciate your desire to have all of the chains standardize on one of the many implementations.

Would it make sense to create an ERC around one of the existing Ethereum deployments (mine or Nick’s or both, depending on whether you want deployment transaction compatibility or salt support) and then Ethereum (and several other chains) can defacto support it because those contracts are already deployed there, and other chains can have something to rally around?

1 Like

What’s the progress on this? This would be super helpful because there is an ongoing increase in the need for contract-at the same address, especially moving towards account abstraction, and the ability to have accounts on the same address across different chains.

After researching nick-method deeply in this article, I would say that it’s a nice workaround currently. Still, it’s not ideal to be a long-lasting solution because of the limitations described in this section such as networks disallowing unprotected transactions and considering future gasPrices and potential changes in opcode gas.

And considering the replies about having to manually store a private key, to ensure deploying the factory on the same address across different chains is a very bad solution (centralized and risky).

While spamming the EIP repo with non-sense standards, having an EIP for a simple CREATE2 precompile contract can be very helpful, simple, and gas efficient and I think most of the chains would consider adopting it as everyone is opting towards multi-chain contracts, and if some chains don’t want it then good for them. @spalladino Are you still willing to continue with this proposal ?

I’d prefer to pass over ownership to whoever wants to keep pushing it. It’s also worth considering Micah’s proposal above, since it does not require a change in Ethereum itself but in all other chains. But I’m not sure how to best distribute it to make sure adoption in other chains does not require too many custom steps.