Source code verification proofs for the earliest contracts on Ethereum (2015-2017), created through compiler archaeology and bytecode matching.
Each proof independently compiles the original source code with the exact compiler version used at deployment time, producing a byte-for-byte match against on-chain bytecode. These are contracts too old for Etherscan's automated verification tools.
Part of Ethereum History.
| Contract | Deployed | Compiler | Method | Proof |
|---|---|---|---|---|
| First Executable Contract | Aug 7, 2015 (block 48,643) | soljson v0.1.1 | Exact bytecode match | Repo |
| Greeter (Hello World!) | Aug 7, 2015 (block 48,681) | soljson v0.1.1 | Exact bytecode match | Repo |
| PrimeChecker | Aug 7, 2015 (block 48,790) | soljson v0.1.1 | Exact bytecode match | Repo |
| Greeter (0xcde4) | Aug 7, 2015 (block 49,392) | soljson v0.1.1 | Exact bytecode match (creation TX) | Repo |
| PrimeChecker (instance 2) | Aug 7, 2015 (block 49,416) | soljson v0.1.1 | Exact bytecode match (identical to 0x66d796e7) | Repo |
| PrimeChecker (instance 3) | Aug 7, 2015 (block 49,618) | soljson v0.1.1 | Exact bytecode match (identical to 0x66d796e7) | Repo |
| Coin (0xd958) | Aug 7, 2015 (block 49,888) | soljson v0.1.1 (optimizer OFF) | Exact bytecode match | Proof |
| MyScheme (1ETH) | Aug 7, 2015 (block 49,924) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| EarlyChainLetter10ETH | Aug 7, 2015 (block 49,931) | soljson v0.1.1 | Exact bytecode match | Repo |
| EarlyChainLetterSmall | Aug 7, 2015 (block 49,936) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| GlobalRegistrar (rank 19) | Aug 13, 2015 (block 50,466) | go-ethereum built-in (commit 83ee3944) | Exact bytecode match (geth-embedded) | Repo |
| MovieVoting (earlier) | Aug 7, 2015 (block 51,112) | soljson v0.1.1 (optimizer ON) | Identical bytecode to rank 23 | Proof |
| MovieVoting | Aug 7, 2015 (block 51,128) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Proof |
| GlobalRegistrar (rank 24) | Aug 22, 2015 (block 51,245) | go-ethereum built-in (commit 83ee3944) | Identical bytecode to rank 19 | Repo |
| SciFi Token | Aug 8, 2015 (block 51,291) | soljson v0.1.4 | Exact bytecode match | Repo |
| NameRegistry | Aug 8, 2015 (block 52,426) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| MessageStore | Aug 8, 2015 (block 53,573) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| EF Multisig Wallet | Aug 8, 2015 (block 54,092) | soljson v0.1.1 | Exact bytecode match | Repo |
| Coin (stub) | Aug 8, 2015 (block 54,126) | soljson v0.1.1 | Exact bytecode match | Repo |
| First Messaging Contract | Aug 8, 2015 (block 54,969) | solc v0.1.1 (native C++) | Exact bytecode match (creation TX) | Repo |
| Etherparty | Aug 8, 2015 (block 55,345) | soljson v0.1.1 | Exact bytecode match | Repo |
| SimpleStorage x4 | Aug 8, 2015 (block 55,399) | solc v0.1.1 (native C++) | Exact bytecode match | Repo |
| LotteryPrototype v1 | Aug 8, 2015 (block 55,701) | soljson v0.1.5 (optimizer ON) | Source identified, size match, optimizer layout differs | — |
| Forwarder | Aug 8, 2015 (block 56,406) | soljson v0.1.1 | Exact bytecode match | Repo |
| LotteryPrototype v2 | Aug 8, 2015 (block 57,060) | soljson v0.1.5 (optimizer ON) | Source identified, size match, optimizer layout differs | — |
| EarlyChainLetter100ETH | Aug 9, 2015 (block 60,143) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| FunDistributor | Aug 10, 2015 (block 62,632) | soljson v0.1.1 | Exact bytecode match | Repo |
| Multiply7 | Aug 10, 2015 (block 63,886) | soljson v0.1.1 | Exact bytecode match | Repo |
| Multiply7 | Aug 9, 2015 (block 66,173) | soljson v0.1.1 | Exact bytecode match | Repo |
| EF Sub-Multisig | Aug 7, 2015 (block 72,142) | Serpent (ethereum/serpent) | Exact bytecode match | Repo |
| HonestDice | Aug 12, 2015 (block 74,817) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| HonestDice (1 ETH) | Aug 12, 2015 (block 75,008) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| Augur REP Crowdsale | Aug 15, 2015 (block 88,090) | Serpent (ethereum/serpent) | Exact bytecode match | Repo |
| Ethereum Multisig Wallet (EF Signer) | Aug 20, 2015 (block 115,693) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Repo |
| Pong (minimal) | Sep 4, 2015 (block 185,494) | soljson v0.1.1 (optimizer OFF) | Exact bytecode match | Proof |
| EthereumPyramid | Sep 7, 2015 (block 198,362) | soljson v0.1.1 | Exact bytecode match | Repo |
| Gamble | Sep 15, 2015 (block 235,543) | Serpent fd9b0b6 (2015-09-06) | Exact bytecode match (creation TX) | Repo |
| GetSet | Sep 17, 2015 (block 247,715) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Proof |
| Pool5x | Sep 17, 2015 (block 249,403) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Proof |
| Pool5x v2 | Sep 17, 2015 (block 249,420) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Proof |
| EF1 ABI Test (foo()) | Sep 20, 2015 (block 261,486) | solc 0.5.17 (Yul strict-assembly) | Exact runtime bytecode match | Repo |
| EF1 ABI Test (foo() v2) | Sep 20, 2015 (block 261,486) | solc 0.5.17 (Yul strict-assembly) | Exact bytecode match | Repo |
| EF1 ABI Test (bar(uint256)) | Sep 20, 2015 (block 261,486) | soljson v0.1.4 (no optimizer) | Exact bytecode match | Repo |
| InsurETH | Sep 20, 2015 (block 262,936) | soljson v0.1.1 (optimizer ON) | Exact bytecode match | Proof |
| Frontier Coin | Sep 21, 2015 (block 271,040) | soljson v0.1.1 (emscripten) | Exact bytecode match | Repo |
| radcoin | Sep 22, 2015 (block 274,203) | soljson v0.1.1 (emscripten) | Exact bytecode match | Repo |
| Coin (Solidity Tutorial) x83 | Sep 26, 2015 | solc v0.2.1 (native C++, optimizer ON) | Exact bytecode match (83 siblings) | Repo |
| Multiply7 Tutorial x120 | Sep 22, 2015 (first seen) | soljson v0.1.3+ (optimizer ON) | Exact bytecode match (120 copies) | Proof |
| ArbiterRegistry | Sep 28, 2015 (block 301,954) | Serpent e5a5f875 (Sep 26, 2015) | Exact bytecode match | Repo |
| Arbitration | Sep 28, 2015 (block 303,316) | Serpent e5a5f875 (Sep 26, 2015) | Exact bytecode match (2 instances) | Repo |
| HashReg | Aug 7, 2015 (block 282,885) | Pre-release Solidity (source from go-ethereum v1.0.0) | Exact bytecode match | Repo |
| TheLuckyOne | Oct 8, 2015 (block 351,891) | soljson v0.1.3 (no optimizer) | Exact bytecode match (getter reorder proof) | Repo |
| Logger | Oct 1, 2015 (block 319,519) | soljson v0.1.2 (no optimizer) | Exact bytecode match | Proof |
| ListLogs | Oct 18, 2015 (block 401,300) | Serpent (ethereum/serpent commit bc4ce59) | Exact bytecode match | Repo |
| Greeter v0.1.4 — 0xF0C5 Document Registry | Oct 25, 2015 (block 450,706) | soljson v0.1.4 (optimizer OFF) | Exact bytecode match (1,346 copies) | Proof |
| Fabian Token | Oct 26, 2015 (block 443,423) | soljson v0.1.5 (no optimizer) | Source reconstructed | Repo |
| MistCoin | Nov 3, 2015 (block 483,325) | Solidity (author-published) | Author-published source | Source |
| Coin (Tutorial) | Nov 4, 2015 (block 490,501) | Native C++ solc v0.1.6 (optimizer ON) | Exact bytecode match | Proof |
| Coin (Tutorial) | Nov 4, 2015 (block 490,523) | Native C++ solc v0.1.6 (optimizer ON) | Exact bytecode match | Proof |
| SmartShipp | Dec 6, 2015 (block 648,566) | soljson v0.1.7 (optimizer ON) | Exact bytecode match (creation TX) | Repo |
| Vitalik's Currency Token | Nov 12, 2015 (block 531,071) | Serpent @ f0b4128 | Exact bytecode match | Repo |
| Etherboard | Nov 13, 2015 (block 536,195) | soljson v0.1.5-v0.1.7 (optimizer ON) | Exact bytecode match | Repo |
| Greeter x111 | Nov 20, 2015 | solc v0.2.1 (native C++, optimizer ON) | Exact bytecode match (111 siblings) | Repo |
| Deadman Switch | Nov 22, 2015 (block 580,469) | Serpent (ethereum/serpent commit bc4ce59) | Exact bytecode match | Repo |
| Mist D.A.O. | Dec 3, 2015 (block 635,909) | soljson v0.1.5 (optimizer ON) | Exact runtime bytecode match (3275 bytes) | Repo |
| Coin | Dec 13, 2015 (block 683,669) | Native C++ solc (webthree-umbrella v1.1.2) | Exact bytecode match | Proof |
| Store | Dec 15, 2015 (block 691,754) | soljson v0.1.6 (optimizer ON) | Exact bytecode match | Proof |
| AdminCheck | Dec 30, 2015 (block 732,572) | soljson v0.1.6 (optimizer ON) | Exact bytecode match | Proof |
| AdminCheckV2 | Dec 30, 2015 (block 732,635) | soljson v0.1.6 (optimizer ON) | Exact bytecode match | Proof |
| Congress DAO (member-mapping) | Dec 28, 2015 (block 762,632) | soljson v0.1.7 (optimizer ON) | Exact bytecode match | Repo |
| Congress DAO (v3 simple) ×2 | Dec 28, 2015 (blocks 762,770–771) | soljson v0.1.7 (optimizer ON) | Exact bytecode match | Repo |
| Blockchain Congress | Dec 28, 2015 (block 762,866) | soljson v0.1.6 (optimizer ON) | Exact bytecode match (creation TX + constructor args) | Repo |
| Greeter | Jan 2, 2016 (block 785,230) | soljson v0.2.0 (optimizer ON) | Exact bytecode match | Proof |
| ShippingEscrow | Jan 9, 2016 (block 821,894) | soljson v0.1.5 (optimizer OFF) | Exact bytecode match | Proof |
| ShippingEscrow2 | Jan 9, 2016 (block 822,661) | soljson v0.1.5 (optimizer OFF) | Exact bytecode match (2 identical clones) | Proof |
| Classic Coin | Jan 10, 2016 (block 826,605) | solc v0.2.0 (native C++, optimizer ON) | Exact bytecode match | Repo |
| Basic Token (unoptimized) x138 | Jan 16, 2016 | solc v0.2.1 (native C++, optimizer OFF) | Exact bytecode match (138 siblings) | Repo |
| Doubler | Jan 21, 2016 (block 883,117) | solc v0.2.0 (native C++) | Exact bytecode match | Repo |
| King of the Ether Throne v0.3.0 | Jan 23, 2016 (block 893,433) | soljson v0.2.0 nightly 2016.1.20, optimizer OFF | Exact bytecode match | Repo |
| YoutubeViews | Jan 25, 2016 (block 904,395) | soljson v0.2.0 nightly (Jan 2016, optimizer ON) | Source reconstructed | Repo |
| Wallet Deposit/Collect x50 | Feb 8, 2016 | soljson v0.1.3 (optimizer OFF) | Exact bytecode match (50 copies) | Proof |
| Basic Token (optimized) x200 | Feb 1, 2016 | solc v0.2.1 (native C++, optimizer ON) | Exact bytecode match (200 siblings) | Repo |
| Random | Feb 4, 2016 (block 951,171) | soljson v0.1.6 (optimizer OFF) | Exact bytecode match | Proof |
| IPFSTest | Feb 5, 2016 (block 958,095) | soljson v0.2.0 (optimizer ON) | Exact bytecode match | Proof |
| King of the Ether Throne v0.4.0 | Feb 6, 2016 (block 963,186) | soljson v0.2.1 nightly 2016.2.3 (fad2d4df), optimizer ON | Exact bytecode match | Repo |
| Unicorns Token (0x1f75 / 0x59a2) | Feb 11, 2016 (block 987,979) | solc v0.1.1 native C++ (optimizer ON) | Source reconstructed - exact block multiset match | Proof |
| Unicorns Token (0x41a7) | Feb 11, 2016 (block 988,807) | solc v0.1.1 native C++ (optimizer ON) | Source reconstructed - exact block multiset match | Proof |
| Unicorns Token (0xe369 / 0xab15) | Feb 11, 2016 (block 988,921) | solc ~v0.1.2 (Mist snapshot, optimizer ON) | Source reconstructed | Proof |
| Bitnation Holon DAO | Feb 17, 2016 (block 1,019,844) | soljson v0.2.2 (optimizer ON) | Exact bytecode match | cartoonitunes/holon-dao-verification |
| BitnationShares (XBN) | Feb 17, 2016 (block 1,019,907) | soljson v0.2.2 (optimizer ON) | Exact bytecode match | cartoonitunes/bitnation-shares-verification |
| PiggyBank | Feb 19, 2016 (block 1,026,739) | soljson v0.1.1 (optimizer OFF) | Exact bytecode match | Proof |
| Doubler (0xc182) | Feb 19, 2016 (block 1,028,387) | soljson v0.2.1 (optimizer ON) | Exact bytecode match | Repo |
| DynamicPyramid | Feb 23, 2016 (block 1,049,304) | soljson-v0.2.0-nightly.2016.1.20+commit.67c855c5 (optimizer ON) | Exact bytecode match | Repo |
| Godlcoin (GOD) | Feb 28, 2016 (block 1,074,263) | soljson v0.1.7 (optimizer ON) | Exact bytecode match | Proof |
| Love (W♥) | Mar 8, 2016 (block 1,117,697) | Pre-soljson Solidity (EXP-based dispatch, compiler binary lost) | ABI verified (13/13 selectors); exact bytecode match unachievable | Repo |
| DinastyCoinToken | Mar 14, 2016 (block 1,148,743) | solc v0.2.0 (native C++, optimizer ON) | Exact bytecode match | Proof |
| Poker Chips (POKER) | Mar 21, 2016 (block 1,192,284) | solc v0.2.1 (native C++, optimizer ON) | Exact bytecode match | Repo |
| MeatConversionCalculator | Mar 24, 2016 (block 1,211,128) | soljson v0.2.1+commit.91a6b35f, optimizer ON | Exact bytecode match | Repo |
| MeatGrindersAssociation | Mar 24, 2016 (block 1,211,176) | soljson v0.2.1+commit.91a6b35f (optimizer ON) | Exact bytecode match | Repo |
| MKR v1 (Maker Governance Token) | Mar 28, 2016 (block 1,233,109) | soljson v0.3.2+commit.81ae2a78 (optimizer OFF) | Exact bytecode match (factory-deployed; creation also matches) | Repo |
| Meme Token | Apr 13, 2016 (block 1,330,011) | soljson v0.3.1 (optimizer ON) | Exact bytecode match | Proof |
| GavCoin | Apr 26, 2016 (block 1,408,600) | solc v0.3.1 | Exact bytecode match | Repo |
| DGX GoldTokenLedger | Apr 2016 | solc 0.3.6 --optimize-runs=1 |
Source reconstructed (44/44 selectors, all names confirmed by Digix CTO Anthony Eufemio; compiler+optimizer pinned by dispatcher prefix, gas stipend PUSH2 0x61da, and constant-optimizer multiplication trick) |
Repo |
| Mist Multisig Wallet (4088b, optimized) | May 16, 2016 (block 1,528,964) | solc v0.3.0 (optimizer ON) | Exact bytecode match | Repo |
| Token 0.1 (fixed transferFrom) x103 | May 20, 2016 | solc v0.2.1 (native C++, optimizer ON) | Exact bytecode match (103 siblings) | Repo |
| Mining Coin | Jun 16, 2016 (block 1,718,272) | soljson v0.3.3 (emscripten) | Exact bytecode match | Repo |
| ShapeShift Chain-Split Forwarder | Jul 24, 2016 (block 1,951,734) | solc v0.2.1–v0.3.5 (optimizer ON) | Exact bytecode match | Repo |
| ShapeShift Chain-Split Receiver | Jul 26, 2016 (block 1,957,038) | solc v0.2.1–v0.3.5 (optimizer ON) | Exact bytecode match | Repo |
| ShapeShift Chain-Split Receiver | Jul 26, 2016 (block 1,957,039) | solc v0.2.1–v0.3.5 (optimizer ON) | Exact bytecode match | Repo |
| ShapeShift Chain-Split Splitter | Jul 26, 2016 (block 1,957,123) | solc v0.2.1–v0.3.5 (optimizer ON) | Exact bytecode match | Repo |
| HugCoin | Aug 23, 2016 (block 2,123,297) | soljson v0.3.5 (optimizer ON) | Exact bytecode match | Repo |
| Moose Factory | Sep 19, 2016 (block 2,284,575) | Serpent 2.0.7 | Exact bytecode match (4 trailing dead bytes stripped) | Repo |
| SplitOnDeploy (0xa2af) | Sep 30, 2016 (block 2,353,701) | solc v0.4.4 (no optimizer) | Exact bytecode match | Repo |
| Exchange Deposit Forwarder v1 | Oct 4, 2016 (block 2,375,846) | solc v0.4.2 (optimizer OFF) | Exact bytecode match | Repo |
| Augur REP Crowdsale | Oct 4, 2016 (block 2,378,196) | Serpent develop @ bc4ce59 (Jun 2016) | Exact bytecode match | Repo |
| SplitOnDeploy (0xe0a6) | Oct 30, 2016 (block 2,533,297) | solc v0.4.4 (no optimizer) | Exact bytecode match (identical to 0xa2af18e8) | Repo |
| Receiver (0x6d81) | Oct 30, 2016 (block 2,533,723) | solc v0.4.4 (no optimizer) | Exact bytecode match | Repo |
| Receiver (0x117a) | Oct 30, 2016 (block 2,533,760) | solc v0.3.6 (no optimizer) | Exact bytecode match | Repo |
| Token Forwarder | Oct 2016 (block 2,914,655) | solc v0.4.2 (optimizer ON) | Near-exact bytecode match | Repo |
| Token Sweeper | Feb 18, 2017 (block 3,203,394) | solc v0.4.9 (no optimizer) | Exact bytecode match | Repo |
| SplitOnDeploy payable (0x15ba) | Mar 31, 2017 (block 3,450,894) | solc v0.4.9–0.4.11 (no optimizer) | Near-exact bytecode match (swarm hash differs) | Repo |
| UserWallet (Collector) | Jun 2017 (block 3,806,458) | solc v0.4.11 (optimizer ON) | Near-exact bytecode match | Repo |
| Curio Cards v2 (Cards 17-19) | Jun 20, 2017 (block 3,902,090) | solc v0.4.8 (optimizer OFF) | Exact bytecode match | Repo |
| EtherVote (stake-voice) | Jul 10, 2017 (block 4,004,456) | soljson v0.4.11 (optimizer OFF) | Code match (CBOR hash differs) | Proof |
| ShitToken (SHIT) | Jul 23, 2017 (block 4,061,425) | solc v0.4.11 (native Darwin/appleclang, optimizer ON, runs=1) | Exact bytecode match (CBOR swarm hash differs) | Repo |
| ShitToken (Website) | Jul 23, 2017 (block 4,061,483) | solc v0.4.11 (native Darwin/appleclang, optimizer ON, runs=1) | Exact bytecode match (CBOR swarm hash differs) | Repo |
| Peperium Series 2 Token | Aug 2017 (block 4,210,431) | solc v0.4.14 (optimizer OFF) | Near-exact bytecode match | Repo |
| Asteroid Token (ROID) | Oct 24, 2017 (block 4,419,671) | solc v0.4.15 (optimizer ON) | Code match (CBOR hash differs) | Repo |
| CryptoCats Pre-Launch Test (T1) | Nov 11, 2017 (block 4,530,388) | Solidity 0.4.18 (optimizer ON) | Near-exact bytecode match | Repo |
| CryptoCats Pre-Launch Test (T2) | Nov 11, 2017 (block 4,532,036) | Solidity 0.4.18 (optimizer OFF) | Near-exact bytecode match (8137/8451, 96.3%) | Repo |
| CKBirthBot | Nov 28, 2018 (block 6,720,524) | solc v0.4.17 (optimizer OFF) | Exact bytecode match | Repo |
| Exchange UserWallet (709k fleet) | Jan 4, 2018 (block 4,850,028) | solc v0.4.14–0.4.16 (optimizer ON, runs=200) | Code match — 627 runtime bytes (709,039 siblings, most-deployed bytecode in Ethereum history) | Repo |
| avsa ERC777 ReferenceToken | Apr 5, 2018 (block 5,385,661) | solc v0.4.21 (optimizer ON, runs=200) | Near-exact match (1 byte) | Repo |
- Bytecode analysis - Identify compiler patterns in the on-chain bytecode (constructor shape, memory allocation patterns, function selector dispatch)
- Source reconstruction - Reverse-engineer or locate the original source code from GitHub repos, gists, or archive.org
- Compiler matching - Try every compiler version from the deployment era until we get a byte-for-byte match
- Publication - Each proof is published as an open-source repo with a reproducible verification script
-
Vitalik's Currency Token was compiled from
currency.se(Serpent), notcurrency.sol(Solidity). Theethereum/dapp-binrepo had both implementations side by side. Vitalik confirmed on Reddit with "Nice find!" -
First Executable Contract was compiled with soljson v0.1.1, the earliest available Solidity compiler release, just 8 days after Ethereum mainnet launch.
-
FunDistributor uses the
privatekeyword for its internalpayout()function - one of the earliest known uses of function visibility in a deployed contract. The keyword was supported in solc 0.1.1 but is rarely seen in contracts from this era. The original source was on Pastebin (expired); reconstructed entirely from on-chain bytecode. -
Doubler contract required building a native C++ Solidity compiler from webthree-umbrella v1.1.2 to reproduce the exact bytecode. The JS soljson compiler produces functionally identical but bytecode-different output for pre-0.3.x contracts. The key insight:
amount > this.balance(GT opcode) produces different bytecode thanthis.balance < amount(LT opcode), even though they're logically equivalent.
Most contracts from 2015-2016 are unverified on Etherscan because:
- The compiler versions are too old for automated tools
- Some contracts used languages Etherscan doesn't support (Serpent, LLL)
- Source code was never published or was lost
These proofs preserve the technical history of Ethereum's earliest smart contracts.
Contract: 0x125b606c67e8066da65069652b656c19717745fa
Deployed: August 10, 2015 (block 62,632)
Compiler: soljson v0.1.1+commit.6ff4cd6 (optimizer disabled)
SHA256: 29fef67c6a7d76329a7d3e7770a9b08ae7705553ad628b4347123be0e2fed3c5
Reddit: r/ethereum announcement
An early "king of the hill" behavioral economics experiment. Send >1% of the contract's balance via touch() to become the receiver. If nobody touches the contract for 200+ blocks, the current receiver gets 1/3 of the balance. The interval grows by 0.5% after each payout round.
Original source was hosted on Pastebin (expired). Reconstructed from on-chain bytecode.
Verified source code
contract FunDistributor {
address receiver;
uint lastBlock;
uint touchInterval;
function FunDistributor() {
lastBlock = block.number;
touchInterval = 200;
receiver = msg.sender;
}
function touch() {
payout();
if (msg.value * 100 > this.balance) {
receiver = msg.sender;
lastBlock = block.number;
} else {
msg.sender.send(msg.value);
}
}
function get_receiver() constant returns (address) {
return receiver;
}
function get_target_block() constant returns (uint) {
return lastBlock + touchInterval + 1;
}
function get_touch_interval() constant returns (uint) {
return touchInterval;
}
function payout() private {
if (block.number > lastBlock + touchInterval) {
receiver.send(this.balance / 3);
touchInterval = touchInterval + touchInterval / 200;
lastBlock = block.number;
}
}
}Verification notes:
- The Reddit post claimed payout was 25% of the balance, but verified code shows
this.balance / 3(33.3%) - Uses the
privatekeyword forpayout(), which was supported in solc 0.1.1 but rarely seen in deployed contracts from this era - solc 0.1.1 evaluates binary expressions right-to-left:
msg.value * 100and100 * msg.valueproduce different bytecode (operand push order matters for matching)
Found source code for an early contract? Know the compiler version for an unverified 2015 contract? Open an issue or PR.
CC0 1.0 - Public domain.
- Native C++ Solidity Compilers — Pre-built solc binaries for frontier-era bytecode archaeology. Required when soljson/npm builds produce close-but-not-exact matches.