Vitalik Buterin Serpent oracle fetcher (Oct 12, 2015). get(string) request contract; sweeps balance to 0xb3cd4c25 (send-before-return variant). Byte-for-byte cracked (Serpent @ f0b4128).
Historical Significance
Part of a series of private lottery contract experiments Vitalik deployed on mainnet in October 2015. The hardcoded 'cow' test key links these to pyethereum's classic test patterns.
Key Facts
Description
Deployed October 2015 by Vitalik Buterin. A paid query contract written in Serpent with a single get(string) entry point: callers must send a minimum fee, the contract records a hash derived from the caller, value and input, emits a log event, and forwards the fee onward. Byte-identical siblings exist in this collection.
Source Verified
Serpent get(string) oracle fetcher, sibling of 0x7e7f6373. Compiled with ethereum/serpent @ f0b4128; exact creation+runtime match (404 bytes). Beneficiary 0xb3cd4c25; source orders the send before the return (vs return-then-send in the other two instances).
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 (Serpent)
# Submitted by EthereumHistory (ethereumhistory.com)
event GetRequest(url:string, sender:address, id:uint256, value:uint256)
def get(url:string):
if msg.value >= 7000000000000000:
self.storage[0] = sha3(block.prevhash + sha3(url:str) + msg.sender + msg.value * 2^160)
log(type=GetRequest, url, msg.sender, self.storage[0], msg.value)
send(0xb3cd4c2512402047ef4ddeb1ab9f8df400ce2d3f, self.balance)
return(self.storage[0])
External Links
Related contracts
SerpentGamble
Same deployerProvably-fair betting game where players choose their own odds. The owner settles bets with a commit-reveal random seed. Includes a 2-day emergency refund.
0x034df8...200e2fSeptember 20, 2015SerpentGamble
Same deployerSibling of 0x034dF870 (SerpentGamble). Provably-fair Serpent betting game; players choose their own odds, owner settles via commit-reveal seed, 2-day refund.
0x9ca7e9...fa8bb4September 21, 2015SerpentGamble
Same deployerSibling of 0x034dF870 (SerpentGamble). Provably-fair Serpent betting game; players choose their own odds, owner settles via commit-reveal seed, 2-day refund.
0x75649a...176028September 21, 2015SerpentGamble
Same deployerIntermediate build of serpent_gamble, a provably-fair betting dapp (Bet/Win/Loss/NewSeed), related to verified sibling 0x59375871. Source not yet reconstructed.
0xe1a99f...0d2457September 21, 2015SerpentGamble
Same deployerIntermediate build of serpent_gamble, a provably-fair betting dapp (Bet/Win/Loss/NewSeed), related to verified sibling 0x59375871. Source not yet reconstructed.
0xdc00a9...15861fSeptember 21, 2015SerpentGamble
Same deployerIntermediate build of serpent_gamble, a provably-fair betting dapp (Bet/Win/Loss/NewSeed), related to verified sibling 0x59375871. Source not yet reconstructed.
0xd0ed09...300b48September 21, 2015