Back to Home

EthXbt

utility
0x3c025ceb9fcf...c00aa9dd3142
FrontierContract #4,027Exact Bytecode MatchEdit this contract
Deployed November 19, 2015 (10 years ago)Block 563,655

An Oraclize price ticker that fetches the ETH/Bitcoin (ETH/XBT) rate from Kraken, deployed at DEVCON1 in November 2015.

Frontier EraVerified Source

Historical Significance

This is one of the earliest oracle-consuming contracts on Ethereum mainnet and a direct artifact of DEVCON1, Ethereum's first developer conference. Because smart contracts cannot make HTTP requests on their own, services like Oraclize were the standard way to bring off-chain data such as price feeds on-chain in the Frontier era, years before Chainlink and the DeFi ecosystem existed. The contract is a canonical demonstration of the usingOraclize pattern: an authenticated HTTPS query to an exchange API, a callback that stores the result, and a self-renewing schedule that keeps the feed current. The embedded DEVCON1 coupon ties it specifically to the November 2015 conference and to Oraclize's developer outreach at the event.

Context

The contract was deployed on November 19, 2015, during Ethereum's Frontier release, which had launched on July 30, 2015. It was compiled with Solidity v0.1.6, a compiler from November 2015, and predates the Homestead hard fork of March 2016. At this time there was intense interest in oracles, since a contract has no native way to read data from the outside world. Oraclize, using TLSNotary proofs, was the dominant solution for delivering authenticated web data to contracts. Kraken was a leading exchange and one of the few offering an ETH/XBT trading pair, which made its public ticker a natural source for an Ether against Bitcoin price feed. DEVCON1, held in London in November 2015, was where much of this early tooling was showcased.

Key Facts
Deployment Block
563,655
Deployment Date
Nov 19, 2015, 07:13 AM
Code Size
3.7 KB
Gas at Deploy
829,617
Transactions by Year
20151

Description

This contract is an Oraclize-powered price feed that tracks the ETH/XBT (Ether against Bitcoin) exchange rate. Its update function asks the Oraclize service to fetch the price from Kraken's public ticker API, using the URL data source and the JSON query json(https://api.kraken.com/0/public/Ticker?pair=ETHXBT).result.XETHXXBT.c.0. When Oraclize delivers the result, the __callback function stores the returned price string in a public state variable named ETHXBT and immediately schedules the next query with a 180 second delay, so the contract refreshes its price roughly every three minutes without any further interaction. A kill function lets the deploying account selfdestruct the contract.

The contract was deployed on November 19, 2015, the week after DEVCON1, Ethereum's first developer conference, held in London from November 9 to 13, 2015. Each query is paid for with a promotional coupon code, DEVCON1, that Oraclize distributed so that conference attendees and developers could run oracle queries free of charge. The coupon string is embedded directly in the bytecode and is applied through the Oraclize useCoupon mechanism before every query.

Off-chain data delivery relies on the Oraclize service, later renamed Provable. The contract resolves the live Oraclize contract address at call time through the Oraclize Address Resolver at 0x1d11e5eae3112dbd44f99266872ff1d07c77dce8, the resolver Oraclize operated on Ethereum mainnet during this period. The constructor requests the TLSNotary plus IPFS proof type, the authenticity proof Oraclize offered to attest that returned data genuinely came from the stated HTTPS endpoint.

The contract was not verified on Etherscan. Its source has been reconstructed and its bytecode reproduced byte for byte, both the runtime and the creation code, using the Oraclize API library of the period and Solidity v0.1.6 with the optimizer enabled.

Source Verified

SolidityExact bytecode match(3,822 bytes)
Compiler: soljson

Exact bytecode match on both runtime and creation. Runtime: 2276 bytes, SHA-256 77a4131967d4b179374fbf73fe5a167782d5cf1c38cefd5c60ef112ac02d3575. Creation: 3822 bytes (1546 bytes of init code plus the embedded 2276 byte runtime payload, 0 constructor arguments), reproduced byte for byte (compile verdict exact-match, creation_diff.total_diff_bytes 0, init_prefix_match true), SHA-256 6ce714bd48f1a93b606c0c158a1d7940ad7b3f9c5e28187f9b162d4a478dd30c.

Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: utility
Contains SELFDESTRUCT opcode

Bytecode Overview

Opcodes3,822
Unique Opcodes159
Jump Instructions110
Storage Operations49

External Links