A Peperium meme card from May 2017, the phrase that became the series motto issued as its own ERC20 contract with a fixed supply of 250.
Historical Significance
Peperium put Pepe trading cards on Ethereum, following the Rare Pepe series that began on Bitcoin's Counterparty layer, and ACCEPTRARE is one of the individual cards that made up that experiment. Its value as a record is in the shape rather than the picture: in 2017 a collectible was a token contract, so a seventeen card release meant seventeen deployments, and a collection of them could not be held or shown as one thing until a wrapper was written years later to gather them up.
Context
Deployed 2017-05-10 by 0x003359e6922510dd30552ed6c3204c68638c1f77, one of three addresses that released the series. Supply 250, zero decimals, 3788 bytes of runtime code, identical across every Peperium card. Referenced by the Peperium ERC1155 wrapper at 0xfe880206214856f984d4f64fc89c26681dca15a2, which consolidates 32 of these cards into a single contract.
Token Information
Key Facts
Description
ACCEPTRARE is one card from the Peperium series, deployed on 2017-05-10. Peperium gave every card its own contract rather than issuing them as ids inside one collection, so this address is the whole card: a plain ERC20 with zero decimals, a supply fixed at 250 and no owner functions to mint more. A holder owns one of 250. The Peperium wrapper holds none of them, so every copy is still held directly. The contract shares its bytecode exactly with the other Peperium cards, which were stamped from one template as the series was released through May 2017.
Spurious Dragon Era
Continued DoS protection. State trie clearing.
Bytecode Overview
Verified Source Available
This contract has verified source code on Etherscan.
Show source code (Solidity)
pragma solidity ^0.4.10;
contract tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); }
contract owned {
address public owner;
function owned() {
owner = msg.sender;
}
modifier onlyOwner {
if (msg.sender != owner) throw;
_;
}
function transferOwnership(address newOwner) onlyOwner {
owner = newOwner;
}
}
contract CardToken is owned {
string public standard = 'Token 0.1';
string public name;
string public symbol;
string public ipfs_hash;
string public description;
bool public isLocked;
uint8 public decimals;
uint256 public totalSupply;
/* This creates an array with all balances */
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;
/* 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 CardToken(
uint256 initialSupply,
string tokenName,
string tokenSymbol,
string tokenDescription,
string ipfsHash
) {
balanceOf[msg.sender] = initialSupply; // Give the creator all initial tokens
totalSupply = initialSupply; // Update total supply
name = tokenName; // Set the name for display purposes
symbol = tokenSymbol; // Set the symbol for display purposes (first three as name or three char combo)
description = tokenDescription; //Description in gallery
ipfs_hash = ipfsHash;
decimals = 0; // Amount of decimals for display purposes
}
/* Send coins */
function transfer(address _to, uint256 _value) {
if (balanceOf[msg.sender] < _value) throw; // Check if the sender has enough
if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows
balanceOf[msg.sender] -= _value; // Subtract from the sender
balanceOf[_to] += _value; // Add the same to the recipient
}
/* Allow another contract to spend some tokens in your behalf */
function approve(address _spender, uint256 _value)
returns (bool success) {
allowance[msg.sender][_spender] = _value;
return true;
}
/* Approve and then comunicate the approved contract in a single tx */
function approveAndCall(address _spender, uint256 _value, bytes _extraData)
returns (bool success) {
tokenRecipient spender = tokenRecipient(_spender);
if (approve(_spender, _value)) {
spender.receiveApproval(msg.sender, _value, this, _extraData);
return true;
}
}
/* A contract attempts to get the coins */
function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
if (balanceOf[_from] < _value) throw; // Check if the sender has enough
if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows
if (_value > allowance[_from][msg.sender]) throw; // Check allowance
balanceOf[_from] -= _value; // Subtract from the sender
balanceOf[_to] += _value; // Add the same to the recipient
allowance[_from][msg.sender] -= _value;
Transfer(_from, _to, _value);
return true;
}
function mintToken(address target, uint256 mintedAmount) onlyOwner {
if (isLocked) { throw; }
balanceOf[target] += mintedAmount;
totalSupply += mintedAmount;
Transfer(0, this, mintedAmount);
Transfer(this, target, mintedAmount);
}
function lock() onlyOwner {
isLocked = true;
}
function setDescription(string desc) onlyOwner {
description = desc;
}
/* This unnamed function is called whenever someone tries to send ether to it */
function () {
throw; // Prevents accidental sending of ether
}
}External Links
Related contracts
PEPEBANKSY
Same deployerA Peperium meme card from May 2017, a Banksy stencil issued as its own ERC20 contract with a fixed supply of 150.
0x57e62e...341c96May 4, 2017BASEBALLPEPE
Same deployerA Peperium meme card from May 2017, a baseball card issued as its own ERC20 contract with a fixed supply of 10.
0x99523a...926444May 5, 2017HOTDOGPEPE
Same deployerA Peperium meme card from May 2017, a hot dog issued as its own ERC20 contract with a fixed supply of 10.
0x8f94bc...3212f5May 9, 2017KINGRARE
Same deployerA Peperium meme card from May 2017, a king issued as its own ERC20 contract with a fixed supply of 3.
0x97e5cc...d4bc60May 10, 2017PEPEGOD
Same deployerA Peperium meme card from May 2017, a deity issued as its own ERC20 contract with a fixed supply of 1.
0x38a8e6...b4b35bMay 16, 2017PEPEGOLD
Same deployerA Peperium meme card from May 2017, gold issued as its own ERC20 contract with a fixed supply of 5.
0x08aab3...3444b2May 16, 2017