Technical reference
CREATE2: knowing an address before the contract exists
A predictable address commits to deployment inputs. It does not tell you that the resulting application is safe.
Research articles and reference entries are published in English. Navigation is available in seven languages.
In this article
What the address commits to
CREATE2 calculates a contract address from the deploying address, a 32-byte salt and a hash of the creation code, with a fixed prefix. That makes it possible to calculate a destination before deployment. It is useful for counterfactual accounts and repeatable deployments; it is not a reputation system.
Creation code and deployed code have different jobs. The creation code executes to produce the runtime code. Constructor arguments form part of the creation input. A screenshot showing the predicted address leaves out the factory and the exact bytes that produced it.
The same address can still require a new review
Solidity’s documentation explains that constructor execution can consult external state. The creation input therefore does not, by itself, describe every condition of deployment. After deployment, inspect the runtime code and initial state as well as any proxy, upgrade or administrative controls.
Old explanations of metamorphic contracts need a fork boundary. On chains applying EIP-6780, SELFDESTRUCT generally transfers the balance without deleting the existing account’s code or storage. Its deletion behaviour is retained when creation and destruction occur in the same transaction. Do not apply older destroy-and-redeploy assumptions to every current EVM network.
Keep a reproducible deployment record
Record the chain, factory address, salt, complete creation-code hash, deployment transaction and resulting runtime-code hash. Check constructor parameters separately from later configuration. If the contract is a proxy, follow the implementation and the authority able to replace it.
For example, a team may publish a future vault address before launch. That address can be correctly predicted while its eventual administrator, withdrawal rules or dependencies still need review. Treat the prediction as one verifiable claim in that record, not as the conclusion.
