The first contract on Ethereum mainnet to carry balanceOf, transfer and a Transfer event together, deployed 23 October 2015 with a supply of 1,000,000.
Historical Significance
The three members ERC-20 was built around, balanceOf, transfer and the Transfer(address,address,uint256) event, first appear together in a single deployed contract here, in block 426,661 on 23 October 2015. This is also the first contract on Ethereum mainnet to declare the Transfer event at all. Both firsts are established against every contract created on mainnet from the Frontier launch on 30 July 2015. It predates ERC-20 was proposed as ethereum/EIPs issue #20 on 19 November 2015 by twenty seven days, and MistCoin at 0xf4eCEd2f682CE333f96f2D8966C613DeD8fC95DD, which carries the same three members, follows eleven days later. It opens a run of nine contracts deployed over the following week from 0xB1a2B43A7433dd150BB82227eD519Cd6b142d382 and 0x9b22a80D5c7B3374a05b446081f97d0A34079e7F. Not one of the nine has a name, a symbol or a decimal place, so none of them could be labelled by a wallet, and all of them predate every published token template of the period. Its transfer returns false on an insufficient balance rather than throwing.
Context
Ethereum's Frontier network went live on 30 July 2015. Contracts were compiled and deployed from the geth console, there was no test network in common use, and the material people copied from was the ethereum.org tutorials, the Solidity documentation and the go-ethereum wiki. Almost everything deployed in these months is somebody trying the tools.
Token Information
Key Facts
Description
Deployed 23 October 2015 by 0xB1a2B43A7433dd150BB82227eD519Cd6b142d382. Balances sit in a public mapping named balanceOf, so the only read path is the compiler generated getter. transfer(address,uint256) checks the sender's balance, returns false rather than throwing when it is short, and emits Transfer(address,address,uint256) with neither parameter indexed. The constructor takes a supply and falls back to 10,000 when passed zero; this deployment passed 1,000,000. The runtime is 508 bytes. Its only transaction is its own creation. Source recovered by compiling against solc v0.1.6+commit.d41f8b7c with the optimizer off, reproducing both the deployed runtime and the creation bytecode exactly.
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 through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
contract MyToken {
mapping (address => uint) public balanceOf;
event Transfer(address _from, address _to, uint256 _value);
function MyToken(uint supply) {
if (supply == 0) supply = 10000;
balanceOf[msg.sender] = supply;
}
function transfer(address _to, uint256 _value) returns (bool success) {
if (balanceOf[msg.sender] < _value) return false;
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
Transfer(msg.sender, _to, _value);
return true;
}
}External Links
Related contracts
Wallet
Same deployerGav Wood's multi-sig, daily-limited wallet: the shared implementation that 111 Frontier-era 49-byte forwarders CALLCODE into.
0x273930...2220a2August 20, 2015Wallet
Same deployerA 49-byte CALLCODE forwarder for an early Ethereum multi-sig wallet, delegating every call to Gav Wood's shared wallet library.
0xf5d2ae...8d9533August 20, 2015Wallet
Same deployerA 49-byte CALLCODE forwarder for an early Ethereum multi-sig wallet, delegating every call to Gav Wood's shared wallet library.
0x0ace96...0d68b1September 15, 2015Wallet
Same deployerA 49-byte CALLCODE forwarder for an early Ethereum multi-sig wallet, delegating every call to Gav Wood's shared wallet library.
0xbda7ae...d15497September 15, 2015Wallet
Same deployerA 49-byte CALLCODE forwarder for an early Ethereum multi-sig wallet, delegating every call to Gav Wood's shared wallet library.
0x035e62...4c3b00September 28, 2015Contract 0xe65129...ec0c13
Same deployerThe same token code as 0x3C655ccb35666579511489af88153517fc58b017, redeployed the same afternoon with a supply of 1,000.
0xe65129...ec0c13October 23, 2015