The go-ethereum Contract Tutorial greeter, deployed with the greeting: Welcome to Walmart I love you!
Historical Significance
The Contract Tutorial was the introduction to Solidity that shipped with go-ethereum, and deploying the greeter was its final step. Each copy therefore preserves the sentence its author chose to write onto a public chain while learning the tools. The Solidity source here was recovered by compiling the tutorial text with period compilers until the output matched the deployed bytecode exactly.
Context
Ethereum's Frontier network went live on 30 July 2015. The Contract Tutorial on the go-ethereum wiki, which the Frontier Guide included by reference, was the standard introduction of that period, and it named its three contracts mortal, greeter and token. Solidity was a few months old, contracts were compiled and deployed from the geth console, and no block explorer of the time kept the source, so the greeters survive as bytecode alone.
Key Facts
Description
The greeter is the worked example of the Contract Tutorial on the go-ethereum wiki. It inherits a base contract named mortal, which records the account that created it and exposes kill(), a function that self-destructs the contract and sends its balance to that account. Only the creator can call it.
The greeter itself adds one string. The constructor stores the greeting given at deployment and greet() returns it. There is no setter, so the greeting a copy is born with is the only greeting it ever has, and no account other than the creator can affect it.
This copy was deployed with the greeting: Welcome to Walmart I love you! The account that deployed it, 0x3d0768da09ce77d25e2d998e6a7b6ed4b9116c2d, had been putting contracts on mainnet since block 48,512.
Source Verified
Creation TX (788 bytes) matches exactly: compiled Greeter bytecode (692 bytes) + ABI-encoded constructor arg 'Welcome to Walmart I love you!' (96 bytes). Compiler: soljson v0.1.1+commit.6ff4cd6a, optimizer OFF.
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 mortal {
address owner;
function mortal() { owner = msg.sender; }
function kill() { if (msg.sender == owner) suicide(owner); }
}
contract greeter is mortal {
string greeting;
function greeter(string _greeting) {
greeting = _greeting;
}
function greet() constant returns (string) {
return greeting;
}
}External Links
Related contracts
DeadBeef Test
Same deployerA raw bytecode test deployment by Linagee on Frontier Day 1 - the classic 0xdeadbeef pattern.
0x4dae54...f974bcAugust 7, 2015DeadBeef Test
Same deployerA raw bytecode test deployment by Linagee on Frontier Day 1 - the classic 0xdeadbeef pattern.
0x9973aa...f31f0bAugust 7, 2015DeadBeef Test
Same deployerA raw bytecode test deployment by Linagee on Frontier Day 1 - the classic 0xdeadbeef pattern.
0x87c44b...75f2adAugust 7, 2015Test
Same deployerThe earliest known Ethereum contract with executable runtime code. A single function go() that returns the string "eth", compiled with the first publicly available Solidity compiler (v0.1.1).
0x651629...8c21faAugust 7, 2015Greeter
Same deployerAn early Ethereum contract that returns the string “Hello World!” when called.
0xfea8c4...8b08ebAugust 7, 2015Greeter
Same deployerOne of six HelloWorld Greeter deployments by Linagee on Ethereum Frontier Day 1 - same source, same compiler, greeting: 'Hello World!'
0xd464e6...dc98f3August 7, 2015