A 100-ETH chain-letter investment contract deployed August 9, 2015, part of an early family of Frontier-era financial experiment contracts with variants accepti
Historical Significance
Part of a family of three Ethereum chain-letter contracts appearing within days of each other in August 2015, spanning stake sizes from 0.1 ETH to 100 ETH. Together they represent the first wave of speculative financial experimentation on Ethereum mainnet.
Context
Deployed August 9, 2015, Ethereum Frontier period. The 0.1-ETH and 10-ETH variants appeared two days earlier on August 7, 2015. All three represent early financial experiments from the first two weeks of Ethereum operation.
Key Facts
Description
This chain-letter contract was deployed at block 60143 on August 9, 2015, accepting 100 ETH per participant entry. It follows the same queue-based redistribution pattern as companion contracts deployed days earlier: participants send 100 ETH, are added to an investor array, and receive ETH redistributed from later participants. The getNumInvestors() function tracks the current participant count.
The deployer (0xa14Cf6cEC1c6aAe4b608458F6e14692863A937Aa) was active on Ethereum from block 50406 and created several contracts during the Frontier period. Notably, the deployer also participated in their own contract: the first external deposit of 100 ETH at block 60375 came from a different address, and the deployer themselves deposited 100 ETH at block 60393, placing themselves within the investor queue.
This contract is part of a family of three chain-letter investment contracts that appeared on Ethereum between August 7-9, 2015: a 0.1-ETH variant at 0xbaa54d6e90c3f4d7ebec11bd180134c7ed8ebb52 (block 49936), a 10-ETH variant at 0xa327075af2a223a1c83a36ada1126afe7430f955 (block 49931), and this 100-ETH variant. The three contracts appeared from different deployer addresses, suggesting either coordination among early Ethereum users or independent parallel development of the same concept at different stake levels.
The contract received 29 transactions including deposits of 100 ETH from multiple distinct addresses during 2015 and 2016. In 2024, the getNumInvestors() function was called by blockchain researchers, showing sustained archival interest. Academic research on early Ethereum financial contracts documented this class of scheme extensively: Bartoletti et al. (2019) catalogued 191 such contracts active from August 2015 to May 2017.
Source Verified
Compiled with soljson-v0.1.1+commit.6ff4cd6, optimizer ON. Source is a 100 ETH tree-payout chain letter (MyScheme.sol) with three named read functions: getContractBalance(), getNumInvestors(), getNumNextLevel(). Key difference from the 10 ETH variant (0xa327075a): when numInvestorsMinusOne <= 2, the 100 ETH version sets treeDepth = 1 without sending to myTree[0]. The 10 ETH version sends the full balance to myTree[0] at that point. Storage layout: slot 0 = treeBalance, slot 1 = numInvestorsMinusOne, slot 2 = treeDepth, slot 3 = myTree (dynamic array length). Selector 0xb521a81d = getNumNextLevel(), confirmed via bytecode: returns slot3 - slot1 - 1 (available tree slots).
Historian Categories
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract MyScheme {
uint treeBalance;
uint numInvestorsMinusOne;
uint treeDepth;
address[] myTree;
function MyScheme() {
treeBalance = 0;
myTree.length = 6;
myTree[0] = msg.sender;
numInvestorsMinusOne = 0;
}
function getContractBalance() constant returns (uint a){
return treeBalance;
}
function getNumInvestors() constant returns (uint a){
return numInvestorsMinusOne+1;
}
function getNumNextLevel() constant returns (uint a){
return myTree.length - numInvestorsMinusOne - 1;
}
function() {
uint amount = msg.value;
if (amount>=100000000000000000000){
numInvestorsMinusOne+=1;
myTree[numInvestorsMinusOne]=msg.sender;
amount-=100000000000000000000;
treeBalance+=100000000000000000000;
if (numInvestorsMinusOne<=2){
treeDepth=1;
}
else if (numInvestorsMinusOne+1==myTree.length){
for(uint i=myTree.length-3*(treeDepth+1);i<myTree.length-treeDepth-2;i++){
myTree[i].send(50000000000000000000);
treeBalance-=50000000000000000000;
}
uint eachLevelGets = treeBalance/(treeDepth+1)-1;
uint numInLevel = 1;
for(i=0;i<myTree.length-treeDepth-2;i++){
myTree[i].send(eachLevelGets/numInLevel-1);
treeBalance -= eachLevelGets/numInLevel-1;
if (numInLevel*(numInLevel+1)/2 -1== i){
numInLevel+=1;
}
}
myTree.length+=treeDepth+3;
treeDepth+=1;
}
}
treeBalance+=amount;
}
}External Links
Related contracts
Contract 0x4364ef...39df3c
Same deployerAn early 100 ETH tree-payout chain letter (MyScheme) deployed on Frontier, Aug 9 2015; still holds 1 ETH.
0x4364ef...39df3cAugust 9, 2015Roulette
Same deployerAn early Ethereum roulette contract from August 2015, notable for a critical randomness vulnerability: its 'private' seed is hardcoded to 1 in the constructor.
0x5fe5b7...25a4fdAugust 10, 2015MyScheme
Same eraOne of Ethereum's earliest pyramid-style chain letter contracts, deployed 9 days after genesis. Required 10 ETH per entry and distributed payouts to earlier par
0xa32707...30f955August 7, 2015Ponzi
Same eraOne of the earliest Ponzi schemes on Ethereum - a 102% payout contract where new deposits fund earlier investors, deployed on Frontier Day 4.
0xce44c7...75f579August 8, 2015