Identical-runtime sibling. Standard ethereum.org tutorial token (Homestead, Mar 2016): name/symbol/decimals metadata, a public balanceOf mapping and an overflow
Historical Significance
The canonical 'create your own token' contract from the ethereum.org tutorial, one of the most-copied teaching contracts of the Homestead era.
Context
Compiled with soljson-v0.2.0 (optimizer ON); exact match of the 716-byte runtime. One of 212 byte-identical deployments.
Token Information
Key Facts
Source Verified
Exact runtime bytecode match. Runtime: 716 bytes (byte-for-byte), compiled with soljson-v0.2.0+commit.4dc2445e, optimizer ON. The on-chain creation (1408 bytes) appends ABI-encoded constructor args (initialSupply, tokenName, decimalUnits, tokenSymbol) to the init code; the 716-byte runtime is the shared cluster invariant.
Homestead Era
The first planned hard fork. Removed the canary contract, adjusted gas costs.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract Token {
string public name;
string public symbol;
uint8 public decimals;
mapping (address => uint256) public balanceOf;
event Transfer(address indexed from, address indexed to, uint256 value);
function Token(uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol) {
balanceOf[msg.sender] = initialSupply;
name = tokenName;
symbol = tokenSymbol;
decimals = decimalUnits;
}
function transfer(address _to, uint256 _value) {
if (balanceOf[msg.sender] < _value) throw;
if (balanceOf[_to] + _value < balanceOf[_to]) throw;
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
Transfer(msg.sender, _to, _value);
}
}