Back to Home

FirstCoin

Token
0xb49180d443dc...9337891fd8ce
FrontierSource Verified
Deployed August 9, 2015 (10 years ago)Block 56,258

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

Key Facts

Deployment Block
56,258
Deployment Date
Aug 9, 2015, 01:39 AM
Code Size
634.0 B
Transactions by Year
20153

Description

A FirstCoin instance deployed by 0xA1eEc0a9b7C50B8e79A0D9B8760bC5681fb199EC 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 Opcodes83
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