Fractional ownership of the Ermahgerd Girl photograph, split into 42,069 ERC20 claims and the only vault in this group where a buyout is currently possible.
Historical Significance
The subject of a meme owning and then selling the meme is a specific kind of event, and this contract is where one instance of it is recorded. The metadata is written in the first person by the person in the photograph, which is rare enough on its own.
It is also the control case among its neighbours. The other vaults of this kind hold their memes behind reserve prices nobody will ever pay, with voter turnout too low to open an auction at all, which amounts to a collective decision never to sell. This one is quorate and priced in three figures. Reading the two side by side shows that the buyout mechanism was not the point for most of the people using it.
Token Information
Key Facts
Description
The vault holds Foundation token 21303, titled Ermahgerd Original. The photograph was taken in 1999, long before it meant anything: the subject, Maggie, describes it in the token's own metadata as the product of boredom, an ill fitting retainer and an enthusiasm for Goosebumps books. It went viral in 2012, and the retainer accent in the caption became a whole register of internet English.
The address people hold is 252 bytes of proxy. InitializedProxy, written by Anna Carroll for fractional.art, stores one immutable address and delegatecalls everything to it: the constructor delegatecalls its initialization calldata, and the fallback forwards every later call. All of the ERC20 behaviour, and all of the buyout machinery, lives in a shared TokenVault deployed once and reused by every vault, alongside a single Settings contract that holds the platform limits.
The vault owns the artwork outright and the tokens are claims on it. Anyone may take the NFT away, but only by buying out every holder at once: reservePrice is the weighted average of the buyout prices individual holders have voted for, and start() refuses a bid below it. There is a second lock as well. Settings requires holders of at least half the supply to have voted a price before any auction can begin, so a quiet holder base is itself a veto.
Holders of about 61 percent of the supply have voted a price, which puts the current reserve at 175 ether. That clears the half needed for an auction, which makes this the one vault of its group where the artwork really is for sale: anyone may bid the reserve and start the clock.
Source Verified
Bytecode Overview
Verified Source Available
Source verified on Etherscan.
View Verification ProofShow source code (Solidity)
{{
"language": "Solidity",
"sources": {
"contracts/InitializedProxy.sol": {
"content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n/**\n * @title InitializedProxy\n * @author Anna Carroll\n */\ncontract InitializedProxy {\n // address of logic contract\n address public immutable logic;\n\n // ======== Constructor =========\n\n constructor(\n address _logic,\n bytes memory _initializationCalldata\n ) {\n logic = _logic;\n // Delegatecall into the logic contract, supplying initialization calldata\n (bool _ok, bytes memory returnData) =\n _logic.delegatecall(_initializationCalldata);\n // Revert if delegatecall to implementation reverts\n require(_ok, string(returnData));\n }\n\n // ======== Fallback =========\n\n fallback() external payable {\n address _impl = logic;\n assembly {\n let ptr := mload(0x40)\n calldatacopy(ptr, 0, calldatasize())\n let result := delegatecall(gas(), _impl, ptr, calldatasize(), 0, 0)\n let size := returndatasize()\n returndatacopy(ptr, 0, size)\n\n switch result\n case 0 {\n revert(ptr, size)\n }\n default {\n return(ptr, size)\n }\n }\n }\n\n // ======== Receive =========\n\n receive() external payable {} // solhint-disable-line no-empty-blocks\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 1000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"libraries": {}
}
}}