Quota-gated mint token that rewards every qualifying third step with a 50% balance increase.
Historical Significance
NonceCoin shows the deployer experimenting with proof-of-attention style minting before token standards had stabilized. Instead of a one-shot magic value like MintCoin, it uses a moving public counter plus a modulo schedule, creating a small on-chain game around timing and state inspection.
Context
Deployed Feb 8, 2016 at 15:07 UTC by 0xcd7642260fb84ce6d28730f6579d4f6ab26c8369, NonceCoin arrived between MintCoin and HaHaCoin in the same named family of LoveCoin, InflateCoin, MintCoin, NonceCoin, HaHaCoin, and CoolCoin. EthereumHistory currently records five transactions in 2016 and three more in 2024, so this contract too saw a later rediscovery wave long after its original Frontier-era use.
Token Information
Key Facts
Description
NonceCoin (NC), deployed Feb 8, 2016 at block 973,221, is one of the wallet's more elaborate mineable-token experiments. A public quota counter advances through transfers and successful mint attempts. Mint(value) only continues when the caller supplies the current quota; after incrementing, it pays out only when quota % 3 == 0, increasing the caller's balance by half of their existing balance and subtracting that amount from the contract stash. GetNonce() exposes the current quota only to the organizer address. Runtime and creation bytecode are exactly matched against soljson v0.1.7+commit.b4e666cc with optimization enabled.
Source Verified
Exact creation and runtime bytecode match. Runtime: 1030 bytes, creation: 1748 bytes. Runtime SHA-256 dea6b1c8f7c5d6995bb952b7ab7beb139e746dc29794469c4c4ad61451f8a05d. Creation SHA-256 e9db66549865a741e0fa1fa01e28f0967541bad37c056bdf1cf995325d7455da.
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 NonceCoin {
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 NonceCoin(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 GetNonce() returns (uint256) {
if (msg.sender != organizer) return 0;
return quota;
}
function Mint(uint256 value) {
address t = this;
if (value != quota) return;
quota++;
target = quota % 3;
if (target != uint256(0)) return;
uint256 x = balanceOf[msg.sender] / 2;
balanceOf[msg.sender] += x;
balanceOf[t] -= x;
Transfer(t, msg.sender, x);
}
function transfer(address _to, uint256 _value) {
if (balanceOf[msg.sender] < _value) throw;
if (balanceOf[_to] + _value < balanceOf[_to]) throw;
balanceOf[msg.sender] -= _value;
balanceOf[_to] += _value;
quota += 1;
Transfer(msg.sender, _to, _value);
}
}