bitcoin: An early experimental Ethereum token created in 2015
Token Information
Key Facts
Description
On November 3, 2015, Fabian Vogelsteller and Alex van de Sande released the Ethereum Wallet with built-in contract deployment and token support. This was a significant innovation, as it marked the beginning of what would later become the ERC-20 token standard. At the time, the Ethereum Wallet team was actively working on defining a standardized token framework for Ethereum. With the Beta 3 release of the Ethereum Wallet, the first practical framework was made available and opened up for real-world testing.
This release sparked a wave of tokens created by early Ethereum enthusiasts. One of the earliest examples was a token named “bitcoin”, a simple token designed to replicate Bitcoin’s original fixed supply of 21 000 000 units. It was created by a user known as spiderwars after a comment appeared in the Ethereum Wallet release thread on Reddit asking: “So who is going to start the token ‘bitcoin’ with 21M available?”
Following its creation, spiderwars distributed the “bitcoin” tokens freely to other Reddit users, including Fabian Vogelsteller and various members of the early Ethereum community.
One user reportedly offered 10 Ether in exchange for 1 million “bitcoin” tokens, making this one of the earliest documented over-the-counter token trades on Ethereum.
spiderwars initially made an error by creating a token with a total supply of 0.21 bitcoin before correcting it to the intended 21 000 000 supply.
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 => uint) 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, uint8 _decimals, string _symbol) {
/* 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) returns(bool success) {
/* if the sender doenst have enough balance then stop */
if (balanceOf[msg.sender] < _value) 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);
}
}