Owner-gated burner that calls burn on a fixed token and logs the amount destroyed.
Historical Significance
Supply reductions are easier to trust when they are visible and when the contract doing them cannot do anything else. Binding the token at deployment and emitting an event for every burn gives holders a log they can total independently, rather than relying on the issuer's own accounting. The narrowness is the feature.
Key Facts
Description
Two storage slots hold an owner and the token this burner is bound to, both readable. burnTokens requires the caller to be the owner, calls burn on the token with the requested amount, requires the returned flag to be true, and then emits Burn with the amount. changeOwner rotates the owner and is itself owner gated.
There is no payable fallback, no token recovery path and no way to change which token is burned after deployment. The contract does one thing.
Source Verified
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Byzantium Era
First Metropolis hard fork. Added zk-SNARK precompiles, REVERT opcode, and staticcall.
Bytecode Overview
Verified Source Available
This contract has verified source code.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
pragma solidity ^0.4.18;
contract ERC20 {
function burn(uint256 _value) public returns (bool);
}
contract Burner {
address public owner;
ERC20 public token;
event Burn(uint256 amount);
function burnTokens(uint256 _amount) public {
require(msg.sender == owner);
require(token.burn(_amount));
Burn(_amount);
}
function changeOwner(address _newOwner) public {
require(msg.sender == owner);
owner = _newOwner;
}
}External Links
Related contracts
Msg
Same eraMinimal contract that stores a single public string in state, exposed via the auto-generated m() getter. First of 281 identical siblings. Source verified by EthereumHistory.
0x2c8f58...37b173January 13, 2018Wallet
Same eraToken collection wallet that moves an entire token balance to a chosen address, without the ERC223 callback handler.
0x002204...531195January 19, 2018Wallet
Same eraOwner wallet that forwards ether to its owner, logs any call from a stranger with the full calldata, and lets the owner execute arbitrary calls.
0x001feb...9e7a4fJanuary 20, 2018Sweeper
Same eraMinimal ETH sweeper, first of 1,900 identical deployments in a 2-day burst in January 2018. All sweep to a single hardcoded destination. Source verified by EthereumHistory.
0xeb15f6...6cb3e1January 23, 2018Sweep
Same eraETH sweep-to-fixed-recipient — fallback forwards the contract's entire balance to `0xd293a88c…8d4` via `.send()` and reverts on failure. Massive cluster of 1899 identical deployments — likely deposit-address contracts for a single custodian.
0x00188b...b260a7January 23, 2018Forwarder
Same eraDeposit forwarder in the BitGo style, sending ether to a parent address and able to flush stranded tokens to the same place.
0x00d083...4d5405February 2, 2018