Back to Home

FirstCoin

Token
0xdbb576b5b0e7...39a0c5f19eb1
FrontierSource Verified
Deployed August 9, 2015 (10 years ago)Block 55,962

Tutorial-derived coin contract (Solidity v0.1.1), deployed Aug 9, 2015 during the Frontier era.

Key Facts

Deployment Block
55,962
Deployment Date
Aug 9, 2015, 12:25 AM
Code Size
634.0 B
Transactions by Year
20151
20241

Description

A FirstCoin instance deployed by 0x9B2c46642CAF6B936dc0633da521f1E946B7e18F on Aug 9, 2015, during the first days of the Ethereum Frontier era. The bytecode is identical to all other FirstCoin instances — a minimal coin with coinBalanceOf, sendCoin, and CoinTransfer event, compiled with Solidity v0.1.1.

At least nine total FirstCoin deployments occurred between August 8–11, 2015, from four different deployer addresses. The pattern — repeated deployment of the same tutorial-derived contract by different users — illustrates how the earliest Ethereum adopters learned smart contract development.

See the first instance (0x3c401b518252abe3bbbf898a44939699e7da1634) for full documentation.

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

Opcodes634
Unique Opcodes82
Jump Instructions14
Storage Operations9

Verified Source Available

This contract has verified source code on Etherscan.

View Source Code
Show source code (Solidity)
contract FirstCoin {
    mapping (address => uint) public coinBalanceOf;

    event CoinTransfer(address sender, address receiver, uint amount);

    function FirstCoin(uint supply) {
        coinBalanceOf[msg.sender] = 1000000;
    }

    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