Quota game token whose successful mint drains the contract reserve when the modulo target hits 1.
Historical Significance
HaHaCoin is the most theatrical of the quota coins: rather than paying a small scheduled reward, a qualifying mint drains the whole reserve in one shot. It captures how quickly this deployer iterated from plain ledgers to monetary puzzles, all before ERC-20 conventions had settled.
Context
Deployed Feb 8, 2016 at 15:31 UTC by 0xcd7642260fb84ce6d28730f6579d4f6ab26c8369, HaHaCoin followed NonceCoin by 24 minutes and preceded CoolCoin by under an hour. It belongs to the same named-coin sequence of LoveCoin, InflateCoin, MintCoin, NonceCoin, HaHaCoin, and CoolCoin. EthereumHistory currently records one 2016 transaction and one 2024 transaction for HaHaCoin, a minimal but still visible second-life trace on chain.
Token Information
Key Facts
Description
HaHaCoin (HHC), deployed Feb 8, 2016 at block 973,306, is a quota-driven token built from the same organizer / name / symbol / decimals / target / quota / balanceOf layout as the nearby experiments. Mint(value) only proceeds when the caller supplies the current quota, then updates target = quota % 3; when the target equals 1, the caller receives the contract's entire remaining token balance. Its transfer path also has the family's sticky-address quirk: sending tokens back to the contract credits double. Runtime and creation bytecode are exactly reproduced with soljson v0.1.7+commit.b4e666cc, optimizer on.
Source Verified
Exact creation and runtime bytecode match. Runtime: 1042 bytes, creation: 1760 bytes. Runtime SHA-256 eeeb9a2a779faf554991a26743179520238919f8df058fb42272e304cd98f57c. Creation SHA-256 7d7b3b8e301735a5e04805a5d18499cb079e88036c74eaec9a11a26b49c6ffd4.
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 through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract HaHaCoin {
address public organizer;
string public name;
string public symbol;
uint8 public decimals;
uint256 public target;
uint256 public quota;
mapping (address => uint256) public balanceOf;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
function HaHaCoin(uint256 _target, string _name, string _symbol, uint8 _decimals) {
if (_target == 0) _target = 10000;
organizer = msg.sender;
address t = this;
balanceOf[t] = _target;
name = _name;
symbol = _symbol;
quota = 0;
decimals = _decimals;
}
function transfer(address _to, uint256 _value) {
address t = this;
if (balanceOf[msg.sender] < _value) throw;
if (balanceOf[_to] + _value < balanceOf[_to]) throw;
balanceOf[msg.sender] -= _value;
if (_to == t) balanceOf[_to] += 2 * _value;
else balanceOf[_to] += _value;
quota++;
Transfer(msg.sender, _to, _value);
}
function Mint(uint256 value) {
address t = this;
uint256 x;
if (value != quota) return;
quota++;
target = quota % 3;
if (1 != target) return;
x = balanceOf[t];
balanceOf[msg.sender] += x;
balanceOf[t] -= x;
Transfer(t, msg.sender, x);
}
}