Bytecode verified via sibling
This contract shares identical runtime bytecode with token (0xdbb576b5...) which has been verified through compiler archaeology.
The Frontier Guide's Coin tutorial contract: a pre-ERC-20 token with coinBalanceOf, sendCoin and a CoinTransfer event.
Historical Significance
The Frontier Guide's Coin contract was the standard worked example for issuing a currency on Ethereum, published more than a year before ERC-20 existed. It shows the pre-standard vocabulary the ecosystem used at the time: coinBalanceOf rather than balanceOf, sendCoin rather than transfer, and a CoinTransfer event rather than Transfer. Contracts like this are the direct ancestors of the token standard that replaced them.
Context
Deployed 2015-08-10 by 0xc70ba22fe446a85a247bf85bad1addf3ddaf62e9. Thirty-five byte-identical copies of this runtime appear in the Ethereum History archive as undocumented Frontier contracts, deployed by ten distinct addresses between 2015-08-08 and 2015-09-21. One address accounts for twenty of them; the remaining fifteen are spread across nine others, consistent with a mix of repeated experimentation and independent readers working through the same tutorial.
Key Facts
Description
A minimal pre-standard token. The constructor credits the deployer with the supply argument, falling back to 10000 via the old Solidity expression (supply || 10000). sendCoin(address,uint256) returns false instead of reverting when the sender's balance is short, debits and credits two entries of the public coinBalanceOf mapping, and emits CoinTransfer. The runtime is 495 bytes and dispatches two selectors: sendCoin(address,uint256) at 0x90b98a11 and the mapping getter coinBalanceOf(address) at 0xbbd39ac0. There is no allowance mechanism, no total supply accessor and no owner privilege.
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
Source verified on Etherscan.
Show 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] = (supply || 10000);
}
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
Greeter
Same deployerA Frontier-era Greeter contract with the message: 'Hello World!'
0x113158...72fa8aAugust 8, 2015CoinFlipper
Same deployerA coin flip on the block timestamp that pays double or keeps the stake
0x6c8dda...5ef84eAugust 8, 2015CoinFlipper
Same deployerA coin flip settled on the parity of the block timestamp, with a size guard written the wrong way round so no bet can ever be placed.
0x5bd4a6...527b12August 8, 2015CoinFlipper
Same deployerTimestamp-parity coinflip with balance guard and donate().
0xb87824...8642adAugust 8, 2015CoinFlip
Same deployerTimestamp-parity coinflip; payout is `2 * msg.value` via `send`.
0x0013e7...1c2989August 8, 2015Multiply7
Same deployerThe Multiply7 tutorial contract — one of the first Solidity examples ever deployed to mainnet.
0xfcb20a...b96d3fAugust 10, 2015