Back to Home

token

Token
0xbdc57bee2fb6...762fec68a548
FrontierExact Bytecode Match
Deployed November 4, 2015 (10 years ago)Block 490,501

Deployment of the classic Solidity tutorial Coin contract with a default supply of 5,000 tokens and a CoinTransfer event.

Key Facts

Deployment Block
490,501
Deployment Date
Nov 4, 2015, 09:19 PM
Code Size
346.0 B
Gas at Deploy
109,888

Description

An early deployment of the Coin contract from the official Solidity tutorial documentation. The contract implements a simple token with a coinBalanceOf mapping, a sendCoin transfer function, and a CoinTransfer event. The constructor accepts a supply parameter with a fallback default of 1,000 if zero is passed. The deployer initialized it with 5,000 tokens.

The same deployer created a sibling contract (0x283f1161...) at block 490,523 with identical bytecode, 22 blocks later. The deployer created 9 contracts total between blocks 321,934 and 508,110, iterating on token designs during the Frontier era.

Source Verified

SolidityExact bytecode match(346 bytes)
Compiler: Native

Exact bytecode match (init + runtime). 314 bytes creation code + 32 bytes constructor args. Native C++ solc required; soljson matches runtime but not init code.

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

Opcodes346
Unique Opcodes84
Jump Instructions13
Storage Operations8

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Solidity)
contract Coin {
    mapping(address => uint) public coinBalanceOf;
    event CoinTransfer(address sender, address receiver, uint amount);
    function Coin(uint supply) {
        if (supply == 0) supply = 1000;
        coinBalanceOf[msg.sender] = supply;
    }
    function sendCoin(address receiver, uint amount) returns (bool sufficient) {
        if (coinBalanceOf[msg.sender] < amount) return false;
        coinBalanceOf[msg.sender] -= amount;
        coinBalanceOf[receiver] += amount;
        CoinTransfer(msg.sender, receiver, amount);
        return true;
    }
}

External Links