An early Ethereum token contract deployed October 26, 2015 by Fabian Vogelsteller, one week before MistCoin. Likely a prototype of the ERC-20 standard Fabian wa
Historical Significance
Likely a prototype or test deployment by Fabian Vogelsteller in the days before MistCoin, offering a rare window into the development of what became the ERC-20 token standard.
Context
October 2015. The Ethereum Frontier era was six weeks from its end. Fabian Vogelsteller was at the Ethereum Foundation, actively building web3.js and thinking through token standards. EIP-20 would not be formally proposed until late 2015. MistCoin, deployed eight days after this contract, became the first publicly circulated ERC-20 token.
Key Facts
Description
This contract was deployed on October 26, 2015 (block 443,423) by address 0x9b22a80d5c7b3374a05b446081f97d0a34079e7f, identified as Fabian Vogelsteller.
Deployed eight days before MistCoin (November 3, 2015), this minimal token contract appears to be an early prototype of the token mechanics Fabian was developing at the time. The constructor defaults to 10,000 supply if called with 0. It includes a public balanceof mapping (lowercase) and an explicit balanceOf function (camelCase), resulting in two distinct function selectors for balance lookups. Transfer events use non-indexed parameters (LOG1).
Fabian Vogelsteller authored web3.js and co-authored EIP-20 (the ERC-20 token standard). MistCoin, deployed eight days after this contract, became the first notable ERC-20 token and is still traded today.
Source Verified
Source reconstructed as MyToken.sol. Compiler soljson-v0.1.5+commit.23865e39, optimizer OFF. Compiled output matches 622 of 625 runtime bytes. The 3-byte difference is a dispatch table body placement swap between the auto-generated balanceof getter and the explicit balanceOf function. Both bodies are byte-for-byte identical (same mapping slot read). No compiler version or source ordering tried produces the on-chain body placement order, likely a pre-release nightly between v0.1.4 and v0.1.5.
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 (near-exact bytecode match).
View Verification ProofShow source code (Solidity)
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;
}
function balanceOf(address _owner) constant returns (uint256 balance) {
return balanceof[_owner];
}
}