Fractional ownership of the Success Kid photograph: a fractional.art vault holding Laney Griner's 2007 original, split into 42,069,000 ERC20 claims.
Historical Significance
Success Kid is one of the small set of images that everyone recognises and almost nobody can attribute. The photograph has a named author, a date, a beach and a baby with a name, and for most of its life online none of that travelled with it. What this contract does is bolt the provenance to the image and then split the result, so that the record of who took the picture survives independently of whoever currently owns it.
The supply number is the other half of the story. 42,069,000 is not an accounting figure, it is two internet jokes concatenated, and it is written permanently into a contract that also carries a mother's photograph of her son. Both registers are genuine and neither cancels the other, which is roughly what meme ownership looked like in 2022.
Token Information
Key Facts
Description
Inside this vault is Foundation token 21262, titled Success Kid: the authenticated one of one of the untouched original photograph, 3008 by 2000 pixels. Laney Griner took it in August 2007 on Ponte Vedra Beach, south of her home in Jacksonville, Florida, while trying to photograph her eleven month old son Sam. By her own account Sam was more interested in the sand, and the picture that became the meme was the last frame of an unsuccessful session.
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 34 percent of the supply have voted a price, which puts the current reserve at roughly 163,000 ether. That is short of the half needed for a buyout auction to open, so at present the photograph cannot be bought out at any price.
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": {}
}
}}