Skip to main content


Since Ethereum, EVM, and Solidity is full of not really well defined terms, we try to clear the ones we use here:

creation bytecode

The bytecode run by the EVM to deploy the smart contract. This will be wrap the deployed bytecode with prefixed instructions to deploy the contract, as well as suffixed constructor arguments in ABI encoding.

deployed bytecode

The bytecode of a smart contract that will be deployed on-chain i.e. the value you'd get when calling eth_getcode on the contract. Note that with the contracts with immutables, the deployed bytecode after recompilation will be different than the actually deployed contract.