Verification Proofs

Source code recovered through compiler archaeology and proven to match on-chain bytecode. Each proof documents the methodology, compiler version, and evidence used to verify the original source.

121 proofs

Test

0x6516298e1c94769432ef6d5f450579094e8c21fa

August 7, 2015Soliditysoljson v0.1.1+commit.6ff4cd6soljsonExact bytecode match

Compiled from a single-function contract: contract Test { function go() returns (string) { return "eth"; } }. Matched using soljson v0.1.1+commit.6ff4cd6, the earliest available Solidity compiler release. Optimizer off. Byte-for-byte match of all 285 bytes.

Greeter

×81

0xfea8c4afb88575cd89a2d7149ab366e7328b08eb

August 7, 2015Soliditysoljson v0.1.1+commit.6ff4cd6soljsonExact bytecode match

The official Ethereum Greeter tutorial contract (mortal + greeter). Compiled with soljson v0.1.1+commit.6ff4cd6, optimizer off. 692 bytes + 96 bytes constructor arg = 788 bytes. Self-destructed.

Greeter

×9

0xd464e6289af4d1b3a6fabf2de33c2cae85dc98f3

August 7, 2015Solidityv0.1.1+commit.6ff4cd6av0.1.1+Exact bytecode match

Creation TX matches: compiled Greeter bytecode (692 bytes) + ABI-encoded constructor arg 'Hello World!' = 788 bytes. Compiler: soljson v0.1.1+commit.6ff4cd6a, optimizer OFF.

PrimeChecker

×3

0x66d796e7ae8608bba361c97ba7682689cc5bf320

August 7, 2015Solidityv0.1.1+commit.6ff4cd6v0.1.1+Exact bytecode match

Exact bytecode match (154 bytes). Compiled with soljson v0.1.1 (no optimizer). The function selector 0xb19eaf1e is not in any public database. Identical bytecode deployed twice at blocks 48,790 and 48,827.

Greeter (draft)

×3

0xf9c2a99482823c30062ded531e049163034273c2

August 7, 2015Soliditysoljson intermediate (~v0.1.x)soljsonNear-exact bytecode match

near_exact_match: identical source to verified 0xcde4 greeter. All 3 selectors match (kill, greet, mortal). First 482/550 bytes identical (87.6%). 4-byte diff in string return codegen from intermediate soljson build. All three drafts (ranks 7/8/9) share identical 550b runtime.

0xd958b5...ec4c9f

0xd958b51bc95338d152d55beed17a156e8aec4c9f

August 7, 2015Soliditysoljson-v0.1.1+commit.6ff4cd6, optimizer OFFsoljsonExact bytecode match

Exact bytecode match. Creation 708 bytes, runtime 607 bytes. Classic ethereum.org tutorial Coin contract with a bug: balance(address) ignores its argument.

MyScheme (1ETH)

×2

0x109c4f2ccc82c4d77bde15f306707320294aea3f

August 7, 2015Soliditysoljson-v0.1.1+commit.6ff4cd6soljsonExact bytecode match

Exact creation bytecode match (925 bytes). Compiled with soljson v0.1.1+commit.6ff4cd6, optimizer ON. The original MyScheme pyramid contract with 1 ETH entry fee, deployed 7 blocks before the 10 ETH variant by the same deployer (0x881b0a4e). Source independently verified via Etherscan.

MyScheme

0xa327075af2a223a1c83a36ada1126afe7430f955

August 7, 2015Soliditysoljson v0.1.1+commit.6ff4cd6soljsonExact bytecode match

Exact runtime bytecode match. soljson v0.1.1.

EarlyChainLetterSmall

0xbaa54d6e90c3f4d7ebec11bd180134c7ed8ebb52

August 7, 2015Solidityv0.1.1+commit.6ff4cd6v0.1.1+Exact bytecode match

Creation bytecode: 923 bytes exact match. Runtime bytecode: 764 bytes exact match. Compiler: soljson v0.1.1+commit.6ff4cd6, optimizer ON. Entry fee: 0.1 ETH. Single function getNumInvestors(). Same architecture as EarlyChainLetter10ETH and EarlyChainLetter100ETH.

GlobalRegistrar

×21

0x1392a4f1642c22bc6e3380bb156193e790770c35

August 7, 2015Soliditygo-ethereum/83ee39448ego-etheExact bytecode match

Bytecode pre-compiled and embedded in go-ethereum commit 83ee39448e. Creation TX input matches GlobalRegistrarCode constant byte-for-byte.

NameReg

0xc076cf70c54c698d4442cde1561452564fa339a5

August 7, 2015Soliditysoljson ~v0.3.xsoljsonNear-exact bytecode match

near_exact_match: all 4 selectors confirmed via openchain.xyz (reserve, transfer, setAddr, disown). Source structure reconstructed from bytecode analysis. Exact bytecode match not achieved due to 0.3.x dispatch codegen differences.

StringVoting

0x61a9c3ee0fdc982630ccb79ffb53f277bc545606

August 8, 2015Soliditysoljson ~v0.3.xsoljsonNear-exact bytecode match

near_exact_match: vote(string) selector confirmed. Source structure reconstructed from bytecode disassembly showing payable check, sha3 hashing, dynamic array push, and ETH accumulation. Same developer as MovieVoting (ranks 22/23).

MovieVoting

×2

0x58828dc80663a0f3d4ba2dcaff1c4fdffb88d96a

August 8, 2015Solidityv0.1.1+commit.6ff4cd6v0.1.1+Exact bytecode match

soljson v0.1.1+commit.6ff4cd6, optimizer ON. Identical 273b runtime to rank 23.

SciFi

0xd94badbec21695b7a36abcb979efad0108319d18

August 8, 2015Solidity5f6c3cdf5f6c3cdExact bytecode match

One of the first dApps on Ethereum, deployed 9 days after Frontier launch. Users bid ETH to rank sci-fi movies. Compiled with solc v0.1.4, optimizer enabled. 219 bytes runtime.

NameRegistry

0xa1a111bc074c9cfa781f0c38e63bd51c91b8af00

August 8, 2015Exact bytecode match

Exact byte-for-byte match on both creation (698 bytes) and runtime (679 bytes) bytecode. Compiled with soljson v0.1.1+commit.6ff4cd6, optimizer ON. Key compiler archaeology findings: function declaration order affects optimizer output (correct order: reserve, disown, owner, transfer, addr, setAddr), and operand order in conditions matters (0 == owner, not owner == 0).

Greeter

0x7717efe25b65c8c0fcb97a170b086c17b025a1e1

August 8, 2015Soliditysoljson intermediate (between v0.1.4 and v0.1.5)soljsonNear-exact bytecode match

near_exact_match: first 352/457 bytes identical to standard greeter (73%). Diff is string return codegen only. Source is the standard mortal+greeter tutorial. Compiled with intermediate soljson between v0.1.4 and v0.1.5.

Ponzi

0xce44c75d3c2864421df2a1d2f068d8da8375f579

August 8, 2015Soliditysoljson ~v0.3.1 (optimizer ON)soljsonNear-exact bytecode match

near_exact_match: reconstructed source produces 677b runtime (target 683b = 99.1% match) with soljson v0.3.1 optimizer ON. All selectors confirmed via openchain.xyz. 6-byte diff likely from minor source expression variant.

MessagingContract

0xdc884e349103eaee4aef913d532cb5db2745f48b

August 8, 2015Soliditysoljson ~v0.3.1soljsonNear-exact bytecode match

near_exact_match: reconstructed source produces 1387b runtime (target 1377b = 99.3% match) with soljson v0.3.1 no-opt. All 4 selectors confirmed via openchain.xyz. 10-byte diff likely from minor sha3 arg or struct assignment variant.

MessagingContract v2

0x18991fc52465c9cb2ca762947e855beb2ddfff72

August 8, 2015Soliditysoljson ~v0.3.1soljsonNear-exact bytecode match

near_exact_match: reconstructed source produces 1557b runtime (target 1543b = 99.1% match) with soljson v0.3.1 no-opt. All 6 selectors confirmed via openchain.xyz. 14-byte diff likely from delete implementation variant.

MessageStore

0xd2eccde805e888ae37646544d60185b842ff3d6b

August 8, 2015Solidityv0.1.1+commit.858e7b8v0.1.1+Exact bytecode match

Exact byte-for-byte match on creation (458 bytes) and runtime (439 bytes). soljson v0.1.1+commit.858e7b8, optimizer ON.