A 107-byte contract with one function, getBlockhash(uint), returning the hash of a given block number.
Historical Significance
BLOCKHASH is only defined for the previous 256 blocks and returns zero outside that window, a limit that is easy to state and easy to forget. A deployed one-line wrapper is how that boundary got checked from the outside in 2015, and the same opcode became the basis of most early on-chain randomness, including the coin-flip contracts of the same period.
Context
Deployed 2015-08-30 by 0xb735bf53abc79525a4f585a004a620d08cc66b27. Three byte-identical copies of this runtime exist. Source recovered by exact runtime bytecode match and verified on Sourcify.
Key Facts
Description
The whole contract is a single wrapper around the BLOCKHASH opcode. getBlockhash(uint n) at selector 0xe9413d38 returns block.blockhash(n) as a bytes32 and does nothing else. It holds no state, accepts no ether and has no fallback, so the only reachable behaviour is the one read.
Source Verified
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)
// Submitted by EthereumHistory (ethereumhistory.com)
contract BlockHash {
function getBlockhash(uint n) constant returns (bytes32) {
return block.blockhash(n);
}
}External Links
Related contracts
EtherPot (draft build)
Same deployerA pre-release August 2015 test build of the EtherPot blockhash lottery, deployed three weeks into Frontier and never played.
0x47f53b...416adfAugust 21, 2015EtherPot
Same deployerThe public EtherPot lottery, an August 2015 Frontier contract whose blockhash-based winner selection became an early cautionary tale about on-chain randomness.
0x539f29...9587f9August 25, 2015Lotto
Same deployerEtherPot with rounds ten blocks long, deployed to exercise the payout path
0x396864...d0edb7August 27, 2015Lotto
Same deployerEtherPot, a blockhash lottery that runs in rounds and pays out in subpots
0xffd0ac...e02821August 27, 2015Lotto
Same deployerEtherPot, a blockhash lottery that runs in rounds and pays out in subpots
0x4bf42d...d2e7e3August 28, 2015BlockHash
Same deployerA 107-byte contract with one function, getBlockhash(uint), returning the hash of a given block number.
0xf93278...fc16faAugust 30, 2015