An early token contract deploying the MyToken template as Whitcoin (WHIT) on November 3, 2015, the same day the canonical MistCoin was created, illustrating the
Token Information
Key Facts
Description
This contract was deployed at block 484792 on November 3, 2015, approximately six hours after the canonical MistCoin at block 483325. The contract is identified as MistCoin on Etherscan because it uses the identical MyToken template bytecode. However, the token name stored on-chain is Whitcoin with the symbol WHIT, indicating a separate deployer created their own token using the same template on the same day.
The contract uses the MyToken template that was featured in the Ethereum Mist browser wallet documentation. The template was written in Solidity v0.1.6 and provides basic token functionality: a fixed supply assigned entirely to the deployer at creation, a public balanceOf mapping, and a transfer function that emits a Transfer event. The template was designed as a demonstration of how to issue a simple fungible token.
November 3, 2015 was the date on which the Mist browser introduced a graphical token creation interface. The MyToken template was prominently featured in Ethereum Foundation tutorials as a hands-on introduction to token contracts. Multiple users independently deployed tokens using this template on the same day, illustrating how the Mist browser dramatically lowered the barrier to smart contract deployment.
The contract received only one transaction, its deployment. The deployer address 0x26c5AB9c2ee8557A11536b2cA24A19d61E77Af30 has no other documented activity, suggesting this was a one-time experiment following the tutorial.
Source Verified
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Bytecode Overview
Verified Source Available
Source verified on Etherscan.
Show source code (Solidity)
contract MyToken {
/* Public variables of the token */
string public name;
string public symbol;
uint8 public decimals;
/* This creates an array with all balances */
mapping (address => uint256) public balanceOf;
/* This generates a public event on the blockchain that will notify clients */
event Transfer(address indexed from, address indexed to, uint256 value);
/* Initializes contract with initial supply tokens to the creator of the contract */
function MyToken(uint256 _supply, string _name, string _symbol, uint8 _decimals) {
/* if supply not given then generate 1 million of the smallest unit of the token */
if (_supply == 0) _supply = 1000000;
/* Unless you add other functions these variables will never change */
balanceOf[msg.sender] = _supply;
name = _name;
symbol = _symbol;
/* If you want a divisible token then add the amount of decimals the base unit has */
decimals = _decimals;
}
/* Send coins */
function transfer(address _to, uint256 _value) {
/* if the sender doenst have enough balance then stop */
if (balanceOf[msg.sender] < _value) throw;
if (balanceOf[_to] + _value < balanceOf[_to]) throw;
/* Add and subtract new balances */
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
/* Notifiy anyone listening that this transfer took place */
Transfer(msg.sender, _to, _value);
}
}