Back to Home

Contract 0xfdc77b9cb732...4521f5f62e67

0xfdc77b9cb732...4521f5f62e67
HomesteadBytecode OnlyEdit this contract
Deployed May 11, 2016 (10 years ago)Block 1,499,223

Six-module multisig exchange deployed May 2016 with hardcoded multiowned library and off-chain API oracle for settlement. Still holds 14 ETH.

Homestead Era

Historical Significance

An early experimental on-chain exchange from May 2016, deployed before EtherDelta (July 2016, the canonical first widely-used DEX), before OasisDEX (October 2016), and a full year before any of the named DEXes most people remember. The contract holds 14 ETH that has been stuck since the operator presumably abandoned the project. The architecture choice, a multi-owner multisig wrapper around an off-chain settlement API, is an interesting historical record of how early Ethereum developers thought about exchange design before order-book DEXes and AMMs were invented.

Context

Deployed 11 May 2016, two months before the DAO hack and three months before the DAO hard fork. Gavin Wood's multiowned pattern from his Solidity-by-example writings was the standard reference for any multi-owner contract in this era; OpenZeppelin and Gnosis MultiSigWallet would not exist for another six months. The off-chain-oracle-plus-on-chain-vault design is the same model EtherDelta would adopt two months later but extended here with an explicit user registry.

Key Facts
Deployment Block
1,499,223
Deployment Date
May 11, 2016, 06:37 PM
Code Size
14.6 KB

Description

The main module of a six-contract on-chain exchange deployed by 0xdf7e1f46f3a53552c168f28ad95ef5eab6283178 on 11 May 2016. The same wallet deployed thirteen contracts on the same day: a multiowned library at 0x8f57162ef4204e383cdd7ca55c11ab374e23634d, five auxiliary modules, and this exchange at the end of the sequence. The same six contracts were also deployed once before earlier the same day to identical bytecode (the gas usage is byte-identical across both batches), suggesting a dry run followed by the production deployment.

The exchange uses Gavin Wood's multiowned pattern via DELEGATECALL into the library at 0x8f57162ef..., whose address is hardcoded as a 20-byte literal in the exchange's runtime bytecode. The library handles owner add/remove, requirement changes, and signed-confirmation revocation. The exchange itself exposes a complete trading surface: a user registry (addUser, userId, getUser), per-user balance accounts (bank, ethBank), exchange operations (exchange, rate, setExchangeRates(uint, uint), closeSell(uint), exchangeWithdraw), locking (lock, unlock, locked, plus explicit error constants ERROR_LOCKED and ERROR_INSUFFICIENT_BALANCE exposed as zero-arg getters), and an off-chain API hook (setApiAddress, apiAddress). 35 of the 63 dispatched selectors remain unresolved against public selector databases, indicating bespoke method names that exist nowhere else.

The operational history immediately after deployment matches an off-chain settlement model. Block 1,499,237: setApiAddress(...) to designate the off-chain oracle. Block 1,499,259 to 1,499,275: addOwner called four times to build a 4-of-N multisig. Block 1,499,278: changeRequirement to set the signing threshold. Block 1,499,394: the API client at 0xcaa216e03ee4932941ef0729f250 began bulk-calling addUser(uint, address) to seed the user database, seven calls in a single block. From this point the on-chain contract held the ETH while users' identity and order state lived in the off-chain API.

No matching source code has been found in any public repository (selector or contract-name searches return nothing). A byte-for-byte reconstruction is achievable but would require contacting the deployer or a long manual decompilation pass.

Source Verified

Soliditysource_reconstructed
Compiler: v0.3.x

Source not located in any public repository. Selector decode against openchain resolves 28 of 63 selectors; the remaining 35 are bespoke method names. The multiowned library at 0x8f57162ef4204e383cdd7ca55c11ab374e23634d is hardcoded into the runtime bytecode and accessed via DELEGATECALL. Five sibling contracts (0xa243edcb, 0xe0a1c99b, 0x0b910cdb, 0xafd43bfa, 0x9e80340e) deployed by the same wallet in the minutes before this contract are likely the auxiliary modules of the same system.

External Links