Back to Home

EFSubMultisig

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

An early EF multi-party signaling contract (Serpent, Aug 2015). Three developer keys co-sign to emit on-chain events. No ETH, no external calls.

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 3-of-3 on-chain voting contract deployed by the Ethereum Foundation EF 1 wallet on August 12, 2015, just 13 days after Frontier launched. Three signer addresses are hardcoded in the constructor. Any two of three signers can call signMotion to vote on a proposal. Once majority is reached, if the target address is zero, the contract emits a log event with the data payload. Despite being labeled "EFSubMultisig" on Etherscan, this is not a multisig in the standard sense. It holds no funds, cannot transfer ETH, and cannot call other contracts. It is a coordinated signaling mechanism: three EF developer keys agreeing on a message to emit on-chain.

Source Verified

SerpentExact bytecode match(834 bytes)
Compiler: ethereu

First 738 bytes of Serpent-compiled output match the 738-byte on-chain runtime exactly. The compiled output produces 742 bytes total; the final 4 bytes (5b 60 00 f3 = JUMPDEST PUSH1 0x00 RETURN) are a trailing return stub emitted by newer Serpent but absent in the deployer version. Identical bytecode also deployed at 0x2194b1734ee0f67440884da49952a45b34ba832d (block 72,119, 23 minutes earlier). Function selectors: 0x403147b6 = createMotion(addr,data:bytes32), 0xa42c4de7 = signMotion(slot,proposal_id). Storage layout: slots 0-2 = signers, 0x0100 = num_signers (3), 0x0101 = next_proposal_id, sha3([2,id,0-3]) = proposal fields.

Historian Categories

MultisigGovernance

Heuristic Analysis

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

Detected Type: governance

Frontier Era

The initial release of Ethereum. A bare-bones implementation for technical users.

Block span: 01,149,999
July 30, 2015March 14, 2016

Bytecode Overview

Opcodes834
Unique Opcodes101
Jump Instructions30
Storage Operations22

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Serpent)
data _p0
data _p1
data proposals[][4]

def createMotion(addr, data:bytes32):
    idx = self.storage[0x0101]
    self.proposals[idx][0] = addr
    self.proposals[idx][3] = data
    self.storage[0x0101] = idx + 1

def signMotion(slot, proposal_id):
    if msg.sender == self.storage[slot]:
        voted = self.proposals[proposal_id][1] & 2**slot
        if not voted:
            self.proposals[proposal_id][1] = self.proposals[proposal_id][1] | 2**slot
            self.proposals[proposal_id][2] = self.proposals[proposal_id][2] + 1
            if self.proposals[proposal_id][2] > self.storage[0x0100] / 2:
                value = self.proposals[proposal_id][0]
                if value == 0:
                    log(self.proposals[proposal_id][3])
                self.proposals[proposal_id][0] = 0
                self.proposals[proposal_id][1] = 0
                self.proposals[proposal_id][2] = 0
                self.proposals[proposal_id][3] = 0

External Links