Back to Home

FirstCoin

Token
0x52f332d9d93a...44190b18b666
FrontierContract #1,570Exact Bytecode MatchEdit this contract

Bytecode verified via sibling

This contract shares identical runtime bytecode with FirstCoin (0x23e54026...) which has been verified through compiler archaeology.

Deployed September 25, 2015 (10 years ago)Block 286,529

A copy of the coin contract from the Frontier Guide, the two function token that taught a generation of Ethereum developers to move a balance.

Frontier EraVerified Source

Historical Significance

The coin contract from the Frontier Guide, whose tutorial text lives in the go-ethereum wiki: one public mapping of address to balance, one sendCoin(address,uint256) that checks the sender's balance, moves the amount and fires a CoinTransfer event. There is no allowance, no total supply and no decimals; this predates ERC-20 and is the shape every early token was written against. The guide names the contract token, and that is the name recovered here, since the constructor shares it and so never appears in the dispatch table. Its constructor takes a supply and falls back to 200000000 when zero is passed, written as an if. This copy was deployed with 200000000. The declaration order differs from the guide as it was usually pasted, with the balance mapping written below sendCoin rather than above it, which swaps the two function bodies in the compiled output and is why this bytecode did not match the guide source. Source recovered by exact bytecode match: solc v0.1.2+commit.d0d36e3 with the optimizer off reproduces the creation transaction, code and constructor argument both. Note that this contract was verified on Etherscan under the name FirstCoin, which is not a name the guide uses; Etherscan accepts one verification per address and will not take a correction.

Context

Deployed in 2015 on the Ethereum Frontier network.

Key Facts
Deployment Block
286,529
Deployment Date
Sep 25, 2015, 04:29 AM
Code Size
642.0 B
Gas at Deploy
177,697
Transactions by Year
20151

Description

The coin contract from the Frontier Guide, whose tutorial text lives in the go-ethereum wiki: one public mapping of address to balance, one sendCoin(address,uint256) that checks the sender's balance, moves the amount and fires a CoinTransfer event. There is no allowance, no total supply and no decimals; this predates ERC-20 and is the shape every early token was written against. The guide names the contract token, and that is the name recovered here, since the constructor shares it and so never appears in the dispatch table. Its constructor takes a supply and falls back to 200000000 when zero is passed, written as an if. This copy was deployed with 200000000. The declaration order differs from the guide as it was usually pasted, with the balance mapping written below sendCoin rather than above it, which swaps the two function bodies in the compiled output and is why this bytecode did not match the guide source. Source recovered by exact bytecode match: solc v0.1.2+commit.d0d36e3 with the optimizer off reproduces the creation transaction, code and constructor argument both. Note that this contract was verified on Etherscan under the name FirstCoin, which is not a name the guide uses; Etherscan accepts one verification per address and will not take a correction.

Source Verified

Exact bytecode match(642 bytes)
Compiler: v0.1.2+
Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: Token
Has ERC-20-like patterns

Bytecode Overview

Opcodes642
Unique Opcodes83
Jump Instructions15
Storage Operations8

External Links

Related contracts