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-25 by 0x7931c90100285910556fd3c6406942995930ad34. 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
Contract 0x76517f...e0ee4c
Same deployerThe ethereum.org crowdsale tutorial: contributions run to a deadline against a goal, pay out a separate reward token, and are refunded if the goal is missed.
0x76517f...e0ee4cSeptember 3, 2015Contract 0x79ae16...a7785f
Same deployerThe 2015 ethereum.org democracy tutorial under its original name: token holders propose payments, vote a position, and the contract pays out if the vote passes.
0x79ae16...a7785fSeptember 3, 2015Gamble
Same deployerA 106-byte coin-flip: send ether and, if the block timestamp is odd, the contract tries to send back double. If it is even, you lose the stake.
0xc0e0cc...e5e84dSeptember 5, 2015datafeed
Same deployerThe datafeed example from the ethereum dapp-bin standardized contract APIs, a single owner key value oracle.
0x65ede7...4e25fbSeptember 9, 2015Democracy DAO
Same deployerOn-chain governance contract with proposals, voting, and execution. Stripped-down version of the go-ethereum wiki Democracy DAO tutorial.
0xb5b8a0...9cfec6September 24, 2015ProtoDAO_0x7931c901_Sep24
Same deployerSep 24, 2015 proto-DAO experiment — eight months before TheDAO. One of 10 byte-identical sister contracts deployed by 0x7931c901 in a 40-minute burst.
0xcbe06c...54c81cSeptember 24, 2015