The 2015 ethereum.org tutorial token, created with a supply of 1,000,000 units to its deployer.
Historical Significance
A plain instance of the pre-ERC-20 tutorial token, deployed while the interface that replaced it was still being drafted.
Context
Ethereum's Frontier network went live on 30 July 2015. The tutorial token of that period predates ERC-20: balances are read through coinBalanceOf, transfers are sent with sendCoin, and the event announcing one is called CoinTransfer.
Key Facts
Description
The token from the 2015 ethereum.org tutorial, in the form that predates ERC-20. It keeps one public mapping of balances, hands the whole supply to whoever creates it, and moves units with sendCoin(receiver, amount), which checks the sender's balance, returns false rather than reverting when it is short, and announces a successful move with a CoinTransfer event.
There is no approval, no allowance, no decimals, no name and no symbol. The supply is set once and cannot be added to.
It was created with a supply of 1,000,000 units. The Solidity source declares the contract as token, which is the name the tutorial gives it.
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 on Etherscan.
Show source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
contract FirstCoin {
event CoinTransfer(address sender, address receiver, uint amount);
function FirstCoin(uint supply) {
if (supply == 0) supply = 200000000;
coinBalanceOf[msg.sender] = supply;
}
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;
}
mapping (address => uint) public coinBalanceOf;
}External Links
Related contracts
Crowdsale
Same deployerA later revision of the ethereum.org crowdsale tutorial, set to raise 100 ether in 30 minutes with no reward token.
0x5b9b28...ba70eaNovember 9, 2015token
Same eraAn early ERC-20-like token deployed in Ethereum's first week, built directly from the example in the official Ethereum Frontier Guide documentation.
0x8374f5...46609aAugust 7, 2015token
Same eraA second deployment of the FirstCoin tutorial token by the same creator, 11 blocks after the original — both derived from the official Ethereum Frontier Guide e
0x3b4446...295f52August 7, 2015Contract 0xd958b5...ec4c9f
Same eraEthereum.org tutorial Coin contract deployed on Frontier day 1. Contains a bug: balance(address) ignores its argument and returns msg.sender balance.
0xd958b5...ec4c9fAugust 7, 2015token
Same eraEarly tutorial-derived coin contract compiled with Solidity v0.1.1, deployed 9 days after Ethereum Frontier launch.
0x3c401b...da1634August 8, 2015token
Same eraTutorial-derived coin contract (Solidity v0.1.1), one of multiple token instances deployed by the same address on Aug 8, 2015.
0x33e986...395d13August 8, 2015