Deployment of the classic Solidity tutorial Coin contract with a default supply of 500 tokens and a CoinTransfer event.
Historical Significance
One of the earliest deployments of the Solidity tutorial Coin contract, the standard introductory example that taught thousands of developers their first smart contract. Compiled with the native C++ Solidity compiler (not the JavaScript/Emscripten build), reflecting the toolchain developers used in late 2015.
Context
Deployed during the Frontier era when Solidity was at version 0.1.6. The official tutorial Coin contract was the "Hello World" of Ethereum development, appearing in documentation and blog posts as the first contract most developers would write and deploy.
Key Facts
Description
An early deployment of the Coin contract from the official Solidity tutorial documentation. The contract implements a simple token with a coinBalanceOf mapping, a sendCoin transfer function, and a CoinTransfer event. The constructor accepts a supply parameter with a fallback default of 1,000 if zero is passed. The deployer initialized it with 500 tokens.
The same deployer created a sibling contract (0xbdc57bee...) at block 490,501 with identical bytecode, 22 blocks earlier. The deployer created 9 contracts total between blocks 321,934 and 508,110, iterating on token designs during the Frontier era.
Source Verified
Identical runtime bytecode to sibling 0xbdc57bee. Same source, same compiler. Constructor arg: supply=500.
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)
contract Coin {
mapping(address => uint) public coinBalanceOf;
event CoinTransfer(address sender, address receiver, uint amount);
function Coin(uint supply) {
if (supply == 0) supply = 1000;
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;
}
}External Links
Related contracts
token
Same deployerDeployment of the classic Solidity tutorial Coin contract with a default supply of 5,000 tokens and a CoinTransfer event.
0xbdc57b...68a548November 4, 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, 2015NameRegistry
Same eraFixed-fee name registry from Day 9 of Ethereum (Aug 8, 2015). Reserve names for 69 ETH, resolve addresses. A precursor to ENS.
0xa1a111...b8af00August 8, 2015token
Same eraEarly tutorial-derived coin contract compiled with Solidity v0.1.1, deployed 9 days after Ethereum Frontier launch.
0x3c401b...da1634August 8, 2015