Bytecode verified via sibling
This contract shares identical runtime bytecode with Greeter (0xfea8c4af...) which has been verified through compiler archaeology.
The Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
Historical Significance
The greeter was Ethereum's Hello World. It is the worked example in the Frontier Guide and in the go-ethereum Contract Tutorial, and it was the first contract a large share of developers ever deployed. Its mortal base also served as many people's first encounter with Solidity inheritance and with the owner-guarded suicide pattern that early contracts used to reclaim funds.
Context
Deployed 2015-08-22 by 0xa9ac1233699bdae25abebae4f9fb54dbb1b44700. Twenty-one byte-identical copies of this runtime appear in the Ethereum History archive as undocumented Frontier contracts, deployed by twelve distinct addresses between 2015-08-20 and 2015-09-12. That spread of independent deployers over several weeks is the fingerprint of many people separately working through the same published tutorial, rather than one project redeploying its own contract.
Key Facts
Description
Two contracts in one file. mortal records the deployer in an owner slot and exposes kill(), which calls suicide(owner) only when the caller is that owner. greeter inherits from mortal, stores a string set once in its constructor, and returns it from greet(). The deployed runtime is 476 bytes and dispatches exactly two selectors: greet() at 0xcfae3217 and kill() at 0x41c0e1b5. There is no other reachable functionality, no payable path and no way to change the greeting after construction.
Source Verified
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.
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) public {
greeting = _greeting;
}
function greet() constant returns (string) {
return greeting;
}
}External Links
Related contracts
greeter
Same deployerThe Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
0x252568...5f1ce1August 20, 2015Greeter
Same deployerThe go-ethereum Contract Tutorial greeter, deployed with the greeting: Hello World!
0xb214cb...5cd6f7August 20, 2015greeter
Same deployerThe Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
0x6f5678...693918August 20, 2015Greeter
Same deployerThe go-ethereum Contract Tutorial greeter, deployed with the greeting: Hello World!
0x3d7ed1...246503August 22, 2015Contract 0x8e6f6a...5d9651
Same deployerA standalone mortal base contract
0x8e6f6a...5d9651August 22, 2015greeter
Same deployerThe Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
0xbbd533...ee843eAugust 23, 2015