Back to Home

Contract 0x5d3ffbb1de19...2fd7b1af6d47

Token
0x5d3ffbb1de19...2fd7b1af6d47
FrontierExact Bytecode Match
Deployed February 1, 2016 (10 years ago)Block 936,943

Basic ethereum.org token template with name, symbol, decimals, balanceOf, and transfer. One of 200 identical deployments.

Token Information

Symbol
%
Decimals
2

Key Facts

Deployment Block
936,943
Deployment Date
Feb 1, 2016, 10:47 AM
Code Size
1.3 KB
Gas at Deploy
306,593

Description

The simplest token contract from the official ethereum.org tutorials. Implements basic token functionality: name, symbol, decimals, balanceOf mapping, and transfer with overflow checking. No approve/transferFrom (pre-ERC-20 standardization).

200 identical deployments make this one of the most widely used token templates from early 2016.

Source Verified

SolidityExact bytecode match(1,374 bytes)
Compiler: v0.2.1

Exact runtime bytecode match. Native C++ solc v0.2.1 (webthree-umbrella v1.1.2), optimizer ON. 200 identical siblings.

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

Opcodes1,374
Unique Opcodes130
Jump Instructions55
Storage Operations35

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Solidity)
contract MyToken {
    string public name;
    string public symbol;
    uint8 public decimals;
    mapping (address => uint256) public balanceOf;

    event Transfer(address indexed from, address indexed to, uint256 value);

    function MyToken(uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol) {
        balanceOf[msg.sender] = initialSupply;
        name = tokenName;
        symbol = tokenSymbol;
        decimals = decimalUnits;
    }

    function transfer(address _to, uint256 _value) {
        if (balanceOf[msg.sender] < _value) throw;
        if (balanceOf[_to] + _value < balanceOf[_to]) throw;
        balanceOf[msg.sender] -= _value;
        balanceOf[_to] += _value;
        Transfer(msg.sender, _to, _value);
    }
}

External Links