DEPLOYMENT BYTECODE

Contract Creation Code

The bytecode that runs once to deploy EffortToken to the blockchain.654 bytes of init code + 3,868 bytes of runtime code — every section annotated.

The One-Time Deployment Script

When you deploy a smart contract, you send a transaction to the zero address (address(0)) with the creation code as the transaction's input data. The EVM executes this code exactly once. It runs the constructor logic (setting up the token name, symbol, and owner), then returns the runtime bytecode — the actual contract that will live on-chain. After deployment, the creation code is discarded forever.

Init Code vs. Runtime Code

The creation code contains two parts: init code and runtime code. The init code is the constructor — it sets up initial state (writing the token name, symbol, and owner to storage). The runtime code is the actual contract logic (transfer, approve, balanceOf, etc.). The init code ends by copying the runtime code to memory and returning it to the EVM via CODECOPY + RETURN.

How Deployment Works

Here's the step-by-step lifecycle of contract deployment:

1. Deployer sends a transaction to address(0) with creation code as input data

2. EVM creates a new execution context and runs the creation code

3. Constructor executes: stores name, symbol, owner to storage

4. CODECOPY copies the runtime bytecode from creation code to memory

5. RETURN gives the runtime bytecode back to the EVM

6. EVM stores the returned bytecode at the new contract address

7. Init code is discarded — only the runtime code persists on-chain

Key Concept

The creation code is not stored at the contract address. It only exists in the deployment transaction's input data. You can find it on Etherscan under "Contract Creation Code" — but the contract itself only holds the runtime code. This is why the bytecode at a contract address is smaller than what was originally sent in the deployment transaction.

Bytecode Verification & Security

Anyone can deploy arbitrary bytecode — there's no requirement that it was compiled from audited Solidity. This is why source code verification matters: Etherscan recompiles the source with the same compiler settings and checks that the output matches the deployed bytecode. The EffortToken contract is verified — the creation code on-chain provably matches the Solidity source code.

Source

EffortToken.sol

Compiler

solc v0.8.20

200 optimization runs

Output 1

Bytecode

deployed on-chain

Output 2

ABI

used by frontends

Creation Code Structure

Init Code

654 bytes — runs once during deployment. Sets up name, symbol, owner. Then uses CODECOPY + RETURN to deploy the runtime code.

Runtime Code

3,868 bytes — the actual contract. Lives permanently on-chain. Contains all function logic, the dispatcher, events, errors, and metadata.

Total creation code: 4,522 bytes (sent in the deployment transaction)

EffortToken|solc v0.8.20|200 runs|EVM paris|4,522 bytes total
Etherscan
8 Sections

Init Code Hex (654 bytes)

60806040523480156200001157600080fd5b50336040518060400160405280600c81526020016b22b33337b93a102a37b5b2b760a11b8152506040518060400160405280600681526020016511519193d49560d21b8152508160039081620000689190620001b2565b506004620000778282620001b2565b5050506001600160a01b038116620000a957604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b620000b481620000bb565b506200027e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200013857607f821691505b6020821081036200015957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ad57600081815260208120601f850160051c81016020861015620001885750805b601f850160051c820191505b81811015620001a95782815560010162000194565b5050505b505050565b81516001600160401b03811115620001ce57620001ce6200010d565b620001e681620001df845462000123565b846200015f565b602080601f8311600181146200021e5760008415620002055750858301515b600019600386901b1c1916600185901b178555620001a9565b600085815260208120601f198616915b828110156200024f578886015182559484019460019091019084016200022e565b50858210156200026e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610f1c806200028e6000396000f3fe

EffortToken Creation Code — 4,522 bytes from verified contract