A 280-byte contract that exposes one stored number through info() and can be destroyed by its deployer via kill().
Historical Significance
The mortal base is the owner-guarded suicide pattern that nearly every 2015 contract inherited, here wrapped around a single read-only value. Contracts shaped like this are the minimum viable deployment: one piece of state to look at and one way to clean up afterwards, which is what the chain was mostly used for in its first year.
Context
Deployed 2015-08-20 by 0xc876c021ece519a8cb7d3d1b8eea2d1cee9929ba. Two byte-identical copies of this runtime exist. Source recovered by exact runtime bytecode match, verified on Sourcify and Etherscan.
Key Facts
Description
Two contracts in one file. The base, mortal, records the deployer in storage slot 0 and exposes kill(), which calls suicide(owner) only for that address. Info inherits it and adds a single private uint in slot 1, returned by info() at selector 0x370158ea. Nothing in the contract ever writes that uint, so info() returns zero for the life of the contract unless the value was set in the constructor, which leaves no trace in the deployed runtime.
Source Verified
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)
// Submitted by EthereumHistory (ethereumhistory.com)
contract mortal {
address owner;
function mortal() { owner = msg.sender; }
function kill() { if (msg.sender == owner) suicide(owner); }
}
contract Info is mortal {
uint data;
function info() constant returns (uint) {
return data;
}
}External Links
Related contracts
Info
Same deployerA 280-byte contract that exposes one stored number through info() and can be destroyed by its deployer via kill().
0xef550c...ff98bcAugust 20, 2015greeter
Same deployerThe Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
0x083e1d...0fb616August 30, 2015Contract 0xf3b6b2...2c6903
Same deployerThe Frontier greeter carrying one extra unused storage slot
0xf3b6b2...2c6903August 30, 2015greeter
Same deployerThe Frontier-era greeter tutorial contract: returns a constructor-set greeting from greet(), with an owner-only kill() inherited from mortal.
0x3ae3af...e4e04dAugust 31, 2015Greeter
Same deployerThe greeter with a changeable greeting and a block number reader
0x1b2ea4...4bafcbDecember 1, 2015Greeter
Same deployerThe Greeter from the solidity-baby-steps tutorials, deployed with an empty greeting.
0x68b58d...dc2dc0December 1, 2015