Back to Home

Contract 0x2ad2be6be98c...226240696e00

Token
0x2ad2be6be98c...226240696e00
FrontierContract #2,662Exact Bytecode MatchEdit this contract

Bytecode verified via sibling

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

Deployed October 24, 2015 (10 years ago)Block 434,687

A copy of the coin contract from the Frontier Guide where the contract was renamed but its constructor was not, leaving the supply function callable by anyone.

Frontier EraVerified Source

Historical Significance

The two function coin contract from the Frontier Guide, whose tutorial text lives in the go-ethereum wiki: a public mapping of address to balance and a sendCoin(address,uint256) that checks the sender's balance, moves the amount and fires a CoinTransfer event. The guide names the contract token. Whoever deployed this renamed it and left the function named token, so what was meant to be the constructor became an ordinary public function. token(uint256) sets coinBalanceOf[msg.sender] to the value passed, or to 1000000000 when passed zero, and nothing restricts who may call it: anyone can mint themselves any balance at any time. Because the rename is what put token(uint256) in the dispatch table, the name the deployer chose is not recoverable from the bytecode, and the recovered source carries MyToken as a stand-in. Source recovered by exact bytecode match: solc v0.1.6+commit.d41f8b7c with the optimizer on reproduces all 296 bytes of the creation transaction.

Context

Deployed in 2015 on the Ethereum Frontier network.

Key Facts
Deployment Block
434,687
Deployment Date
Oct 24, 2015, 10:42 PM
Code Size
296.0 B
Gas at Deploy
95,657

Description

The two function coin contract from the Frontier Guide, whose tutorial text lives in the go-ethereum wiki: a public mapping of address to balance and a sendCoin(address,uint256) that checks the sender's balance, moves the amount and fires a CoinTransfer event. The guide names the contract token. Whoever deployed this renamed it and left the function named token, so what was meant to be the constructor became an ordinary public function. token(uint256) sets coinBalanceOf[msg.sender] to the value passed, or to 1000000000 when passed zero, and nothing restricts who may call it: anyone can mint themselves any balance at any time. Because the rename is what put token(uint256) in the dispatch table, the name the deployer chose is not recoverable from the bytecode, and the recovered source carries MyToken as a stand-in. Source recovered by exact bytecode match: solc v0.1.6+commit.d41f8b7c with the optimizer on reproduces all 296 bytes of the creation transaction.

Source Verified

Exact bytecode match(296 bytes)
Compiler: v0.1.6+
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

Opcodes296
Unique Opcodes81
Jump Instructions15
Storage Operations8

External Links

Related contracts