A minimal two-party escrow with an arbitrator. finalize() releases funds to the seller; refund() returns them to the buyer. Byte-identical to verified sibling.
Key Facts
Description
Deployed October 30, 2016 by Vitalik Buterin (0x1db3439a22ee7c4d034e9b26437d3960b5af0517). A minimal two-party escrow with an arbitrator. The buyer deploys the contract, naming a seller and an arbitrator; the deployer is recorded as buyer. Funds held by the contract are released to the seller by finalize() (callable by buyer or arbitrator) or returned to the buyer by refund() (callable by seller or arbitrator).
The 695-byte runtime reproduces byte-for-byte from the reconstructed source using solc 0.4.2 (commit af6afb04) with the optimizer off; this compiler predates swarm metadata, so the match is complete with no trailing hash. The contract is byte-for-byte identical to the verified sibling 0x9b27a23006b6612b2dfc840d0a25f4e347121d21, and is verified on Sourcify (chain 1, runtime match).
Source Verified
Runtime bytecode (695 bytes) reproduces byte-for-byte from the reconstructed source using solc 0.4.2+commit.af6afb04, optimizer off. Byte-identical to verified sibling 0x9b27a230; Sourcify runtime match. runtime sha256 2e7cf2ed0a6804c2d1dc7b34d49ae1aa0f17a07b8ffd920f1676be79ac9a6b53.
Tangerine Whistle Era
Emergency fork to address DoS attacks. Repriced IO-heavy opcodes.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
// Verified by EthereumHistory (ethereumhistory.com)
contract Escrow {
address seller;
address buyer;
address arbitrator;
function Escrow(address _seller, address _arbitrator) {
seller = _seller;
arbitrator = _arbitrator;
buyer = msg.sender;
}
function finalize() {
if (msg.sender == buyer || msg.sender == arbitrator)
seller.send(this.balance);
}
function refund() {
if (msg.sender == seller || msg.sender == arbitrator)
buyer.send(this.balance);
}
}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