Bytecode verified via sibling
This contract shares identical runtime bytecode with token (0xdbb576b5...) which has been verified through compiler archaeology.
The ethereum.org token tutorial contract - one of the first ERC20-like tokens on Ethereum, deployed September 2015 by early Frontier users following the officia...
Key Facts
Description
The ethereum.org "Create your own crypto-currency" tutorial contract - one of the earliest ERC20-like token contracts on the Ethereum mainnet.
This contract family (29 identical deployments) represents the first wave of token deployments after the Ethereum Frontier launch on August 1, 2015. Deployers followed the official ethereum.org tutorial, which guided users through creating a simple token contract in browser-solidity.
The source is the exact code shown on the ethereum.org token tutorial page (https://web.archive.org/web/20150906140733/https://www.ethereum.org/token). The contract uses the name "token" (not "MetaCoin") and features the || operator shorthand for default supply values - a feature unique to the JavaScript soljson compiler.
Deployed September 21, 2015 (block 265,822), two days before soljson v0.1.1 was officially published to browser-solidity. The bytecode is 99.8% identical to soljson v0.1.1 output; a single byte difference at runtime position 491 (0x95 SWAP6 vs 0x91 SWAP2) indicates a pre-release development build was used. The || operator on uint types was only supported by soljson, confirming browser-solidity compilation.
The constructor accepted an optional initial supply (defaulting to 10000 via || operator). This basic token pattern influenced many contracts that followed on Ethereum.
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
This contract has verified source code.
View Source CodeShow source code (Solidity)
contract token {
mapping (address => uint) public coinBalanceOf;
event CoinTransfer(address sender, address receiver, uint amount);
function token(uint supply) {
coinBalanceOf[msg.sender] = 1000000;
}
function sendCoin(address receiver, uint amount) returns(bool sufficient) {
if (coinBalanceOf[msg.sender] < amount) {
return false;
}
coinBalanceOf[msg.sender] -= amount;
coinBalanceOf[receiver] += amount;
CoinTransfer(msg.sender, receiver, amount);
return true;
}
}