The 2015 tutorial token renamed to Coin, which turned its initialiser into a public function anyone can call to set their own balance.
Historical Significance
A copy of the tutorial token broken by a one-word edit. Renaming the contract without renaming its initialiser was a common mistake in 2015, when the constructor was simply the function that shared the contract's name, and it turns a fixed supply token into one where any caller can mint to themselves. It is the kind of failure that led later Solidity versions to replace the naming rule with a constructor keyword.
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.
The contract carries a defect that survives in the deployed code. Its initialiser is named token, but the contract is not, so it is not a constructor: it never ran at deployment, and it is a public function that any account can call at any time to write itself whatever balance it likes. Nothing about the supply is fixed and nothing restricts who sets it.
The default it writes when called with zero is 10,000 units.
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
External Links
Related contracts
FirstCoin
Same deployerA copy of the coin contract from the Frontier Guide, the two function token that taught a generation of Ethereum developers to move a balance.
0x23e540...2bdfdbSeptember 25, 2015Contract 0x52f332...18b666
Same deployerA copy of the coin contract from the Frontier Guide, the two function token that taught a generation of Ethereum developers to move a balance.
0x52f332...18b666September 25, 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, 2015