Back to Home

EFSubMultisig

DAO / Governance
0x209711382eae...c5afa9b23d25
FrontierContract #170Exact Bytecode MatchEdit this contract
Deployed August 12, 2015 (11 years ago)Block 72,142

A 2-of-3 motion register deployed by the Ethereum Foundation's EF 1 wallet on 12 August 2015: three hardcoded keys co-sign to emit one onchain event.

Frontier EraVerified Source

Historical Significance

The first preserved contract deployed by the Ethereum Foundation "EF 1" developer wallet, and an early example of multi-party coordination on Ethereum. The design, inspired by the multisig concept but stripped to its simplest form, captures how the core team was experimenting with on-chain governance primitives in the days after Frontier launch. A twin contract with identical bytecode was deployed 23 minutes earlier at 0x2194b1734ee0f67440884da49952a45b34ba832d, likely a test run. It is also one of the very few Serpent contracts from 2015 whose source has been recovered to an exact bytecode match; Serpent was deprecated in 2017 and is supported by no contemporary verification service.

Context

Ethereum Frontier launched July 30, 2015. In the first two weeks, core developers deployed foundational infrastructure including wallets, registries, and coordination tools. The EF 1 address was one of several EF developer keys active in this period, and this contract appears to be part of an initial operational setup. The three signer slots hold addresses with no other on-chain transaction history, likely cold or hardware wallets held by different EF team members whose identities have not been publicly confirmed. On-chain storage confirms the three signers: 0x23a1bada327be1da636cf6c31f71349e3ea0ba00, 0x288bbeb76a509947f3ea8c56e9b86d81f3b41897, and 0x5ed8cee6b63b1c6afce3ad7c92f4fd7e1b8fad9f. The contract was used only three times, all on its deployment day. The same EF 1 wallet later deployed a commit-reveal gambling contract at block 235,543 (0xaf5558b1b834be59b9ff94e05c17bae9257c9bf1); its storage layout and compiler have been identified, but two of its function names remain unrecovered, so it is not yet bytecode-verified.

This contract was written in Serpent, Ethereum's Python-like language from the Frontier era. Serpent was deprecated in 2017 after security concerns, and neither Etherscan nor Sourcify supports Serpent verification today, so its source cannot be published through the usual block-explorer channels.

Key Facts
Deployer
Ethereum Foundation(0x5abfec...6356f9)
Deployment Block
72,142
Deployment Date
Aug 12, 2015, 02:52 AM
Code Size
834.0 B
Gas at Deploy
301,223
Transactions by Year
20152

Description

A multi-party motion register deployed by the Ethereum Foundation "EF 1" wallet at block 72,142 on August 12, 2015, thirteen days after Frontier launched. Three signer addresses are hardcoded by the constructor, and the approval threshold is count > numSigners / 2, which with three signers means two, making this a 2-of-3 scheme.

The source has been recovered by bytecode archaeology and matches the on-chain code exactly: 738 of 738 runtime bytes, and 834 of 834 creation bytes including the three hardcoded signer addresses. It was compiled with Serpent 2.0.0, built from ethereum/serpent commit 6ace8a6 of 10 July 2015, the last commit to the Serpent compiler before this contract was deployed.

The recovered source has two entry points. createMotion(int256,bytes32) registers a motion at the next free index, storing a value (an address slot) and a payload hash. signMotion(int256,int256) lets the signer occupying a given slot approve a motion; each signer's approval is recorded as bit 2**slot in a per-motion vote bitmask, so a signer cannot vote twice. When the vote count passes the threshold, the contract checks the motion's stored value: if it is zero, the payload is emitted as a LOG1 event. All four fields of the motion are then cleared.

Despite the "EFSubMultisig" label, this is not a multisig in the usual sense. It holds no funds, cannot transfer ETH, and cannot call other contracts. It is a coordination and signalling primitive: three Ethereum Foundation developer keys agreeing to put a message on-chain.

Storage layout, confirmed from the bytecode: slots 0x00-0xFF hold signers[256], slot 0x0100 holds the signer count, slot 0x0101 holds the next motion index, and motion fields live at sha3([2, id, field]).

Source Verified

SerpentExact bytecode match(834 bytes)
Compiler: Serpent

Exact match confirmed 2026-08-24: runtime 738/738 bytes and creation 834/834 bytes (including the three hardcoded signer addresses set in def init()). Compiled with Serpent 2.0.0 built from ethereum/serpent commit 6ace8a6 (10 Jul 2015), the last commit before the 12 Aug 2015 deployment. Key finding: the storage keys come from a Serpent 'data motions[](value, votes, count, payload)' struct-array declaration, not hand-written sha3 array literals - a Serpent array literal allocates n*32+32 bytes and writes a length prefix that this contract's bytecode does not contain. Earlier reconstructions using explicit sha3([2, idx, field], items=3) compiled to 815 bytes and were NOT exact.. Optimizer: OFF

Historian Categories

DAO / GovernanceMultisig
Heuristic Analysis

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

Detected Type: DAO / Governance

Bytecode Overview

Opcodes834
Unique Opcodes101
Jump Instructions30
Storage Operations22

External Links

Related contracts