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];
}
}External Links
Related contracts
ýÞ
Same deployer45-byte factory-generated wallet proxy forwarding via CALLCODE to a shared EF multi-sig Wallet (0x4efc6389). Variant without the success-check. Deployed by Fabian Vogelsteller.
0xf6ed6e...f510cfAugust 20, 2015ýÞ
Same deployer49-byte factory-generated wallet proxy. Forwards all calls via CALLCODE to the shared Ethereum Foundation multi-sig Wallet at 0x273930d2. One of a series deployed by Fabian Vogelsteller.
0x816c42...41ff55August 20, 2015MistCoin
Same deployerThe prototype token that inspired ERC-20, deployed by Fabian Vogelsteller on November 3, 2015, sixteen days before he submitted the ERC-20 proposal.
0xf4eced...fc95ddNovember 3, 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, 2015