Back to Home

MyToken

Token
0xe274d18ef7b1...7cfe1489ef65
FrontierExact Bytecode Match
Deployed October 26, 2015 (10 years ago)Block 443,423

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...

Key Facts

Deployer
Fabian Vogelsteller(0x9b22a8...079e7F)
Deployment Block
443,423
Deployment Date
Oct 26, 2015, 04:09 PM
Code Size
742.0 B
Gas at Deploy
211,956

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

SolidityExact bytecode match(742 bytes)

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.

Detected Type: Token
Has ERC-20-like patterns

Frontier Era

The initial release of Ethereum. A bare-bones implementation for technical users.

Block span: 01,149,999
July 30, 2015March 14, 2016

Bytecode Overview

Opcodes742
Unique Opcodes90
Jump Instructions21
Storage Operations9

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Source Code
Show source code (Solidity)
// MyToken.sol
// Compiler: soljson-v0.1.5+commit.23865e39, optimizer OFF
// Deployed: block 443,423 (Oct 26, 2015) by Fabian Vogelsteller

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