A minimal contract storing a single IPFS CIDv0 hash on-chain as a public string. Deployed by Thomas Bertani / Oraclize on Feb 5, 2016.
Historical Significance
The contract is an early on-chain example of the "Ethereum as pointer layer, IPFS as content layer" pattern: a single immutable string variable holding a CIDv0 hash. The pattern later became ubiquitous in NFT metadata and token URI schemes, but in February 2016 it was still being tested in the wild by a small number of teams working at the intersection of Ethereum and IPFS.
Context
The contract was deployed during the Frontier era, five weeks before the Homestead hard fork on March 14, 2016. It was compiled with Solidity v0.2.0, which had been released on December 2, 2015. Oraclize (later Provable) was at this time building out its oracle service, which used IPFS for delivery and proof storage.
Key Facts
Description
IPFSTest is a one-line contract deployed on February 5, 2016 (block 958,095) that holds a single piece of data: the IPFS CIDv0 hash Qmd8ijSKemAE1NX2CbFcBP8wbtTweb4uqKKrd7aJe7bDN1. The contract consists of a single public string state variable named x, which compiles to an auto-generated x() getter (selector 0x0c55699c) and a constructor that copies the hardcoded string into storage slot 0. There are no setters, no access control, no events, and no other functions. The value is set at deploy time and cannot be changed.
The contract was deployed by 0x0047A8033CC6d6Ca2ED5044674Fd421F44884dE8, the same key that deployed the earlier GetSet proxy attributed to Thomas Bertani of Oraclize. Six blocks later (block 958,101) the same key deployed a byte-for-byte identical contract at 0x4b26dcf0981355c8b1f8190f116945322a62a96a. Both contracts encode the same hardcoded IPFS hash.
The content at the referenced CID is no longer retrievable through public IPFS gateways. A 2026 retrieval check against the IPFS DHT returns "no providers found for the given CID," meaning no peer is advertising that hash.
Source Verified
Exact bytecode match (init + runtime). Runtime: 279 bytes. Creation: 517 bytes (238 bytes init). Byte-for-byte identical sibling deployed 6 blocks later at 0x4b26dcf0981355c8b1f8190f116945322a62a96a by the same key.
Historian Categories
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 IPFSTest { string public x = "Qmd8ijSKemAE1NX2CbFcBP8wbtTweb4uqKKrd7aJe7bDN1"; }External Links
Related contracts
Target
Same deployerTarget contract.
0x9e0ae8...c9428eSeptember 17, 2015GetSet
Same deployerA minimal getter/setter proxy from the Oraclize team. set() forwards calls to a hardcoded target contract, get() returns constant 255.
0x77beac...7e96c2September 17, 2015SimpleStorage
Same deployerThe storage example rewired to send a wei and return a constant
0x7aa73b...46473bSeptember 17, 2015Controller
Same deployerController contract.
0x3c9492...e332e5September 17, 2015GetSet
Same deployerA 57-byte test contract: set() stores the transaction's ether value into storage slot 0, and get() reads it back.
0xe595e8...423530September 17, 2015GetSet
Same deployerA 57-byte test contract: set() stores the transaction's ether value into storage slot 0, and get() reads it back.
0xd17e9b...03b76aSeptember 17, 2015