Back to Home

EF1 ABI Test

Unknown
0xe30608b59313...1cdb5052f474
FrontierContract #1,327Exact Bytecode MatchEdit this contract
Deployed September 20, 2015 (10 years ago)Block 261,486

A 57-byte contract deployed by the Ethereum Foundation wallet on September 20, 2015, 52 days after Frontier launch. Implements a single function foo() that retu

Frontier EraVerified Source

Historical Significance

One of the first contracts deployed from an Ethereum Foundation cold wallet after Frontier launch. Demonstrates the ABI function selector mechanism (PUSH29 + DIV dispatch) at the assembly level, predating any known compiler output that produces this exact pattern. A rare example of hand-crafted EVM bytecode used for mainnet integration testing by the core team.

Context

Ethereum Frontier launched on July 30, 2015. The first weeks and months saw EF developers actively testing the live network with small contracts to verify that the EVM, RPC, and ABI specification all worked as designed. Solidity v0.1.1 was released around September 2015. This contract was deployed 52 days after Frontier launch, before the Homestead upgrade (March 2016).

Key Facts
Deployer
Ethereum Foundation(0x5ed8ce...8fad9f)
Deployment Block
261,486
Deployment Date
Sep 20, 2015, 06:28 AM
Code Size
72.0 B
Gas at Deploy
35,354
Transactions by Year
20151

Description

Deployed on September 20, 2015 - just 52 days after the Ethereum Frontier launch - from the first Ethereum Foundation cold wallet (EF1), this 57-byte contract is a minimalist but historically significant artifact of early Ethereum development.

The contract implements a single function, foo() (selector 0xc2985578), which returns the integer 5 when called. A second transaction from the same wallet called foo() to confirm it returned the expected value. The two-transaction pattern - deploy then call - is the signature of a deliberate integration test.

Unlike contracts compiled with Solidity v0.1.1 or LLL, this contract does not begin with the standard 6060604052 free memory pointer header. Its runtime bytecode (57 bytes) starts directly with a PUSH29 instruction encoding the 2^224 divisor used for ABI selector extraction - a more direct encoding than the PUSH1/EXP pattern used by contemporary compilers. The constructor uses a JUMP-based bootstrap rather than the simpler PUSH/RETURN pattern, and selector dispatch uses DUP2 before the EQ comparison - a convention seen in Solidity multi-function dispatch templates but written here by hand.

No known compiler from this era produces this exact bytecode. The evidence strongly suggests this was written directly as EVM assembly, by someone deeply familiar with the Ethereum ABI specification - likely to verify that function dispatch, calldata parsing, and uint256 return encoding worked correctly on the newly launched mainnet.

Source Verified

yulExact bytecode match(72 bytes)
Compiler: solc 0.

Exact runtime bytecode match. 57 bytes. Yul strict-assembly object compiled with solc 0.5.17.

Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: Unknown

Bytecode Overview

Opcodes72
Unique Opcodes28
Jump Instructions5
Storage Operations1

External Links