Create2 Function

create2 is a Solidity function that allows the creation of contracts at deterministic addresses. It was introduced in the Byzantium hard fork of the Ethereum network.

The create2 function takes four arguments:

  • value: the amount of Ether to be sent with the creation of the contract

  • salt: an arbitrary byte array that can be used to create a unique identifier for the contract's address

  • bytecode: the bytecode of the contract to be created

  • initCodeHash: the hash of the initialization code of the contract to be created

Using create2, a contract can be deployed at an address that is determined by the combination of salt and initCodeHash. This allows the creation of contracts with a known address in advance, which can be useful for creating contracts that interact with each other in complex ways, or for creating contracts that require a specific address for compatibility with other systems.

This allows a contract to be deployed to a deterministic address based on the contract's bytecode, the salt (a random string used as an input), and the address of the creating contract. This can be useful in certain scenarios, such as when creating a contract with a specific address is important, or when deploying contracts that need to be frequently updated or replaced.

Last updated