Back to Home

Escrow

Utility
Part of The Vitalik Collection
0xcd8b73c03ba0...90bda5b26ff2
HomesteadSource VerifiedEdit this contract
Deployed June 23, 2016 (10 years ago)Block 1,755,000

A three party escrow whose seller and arbiter are written into the code, with the deploying account taken as the buyer.

Homestead EraVerified Source

Historical Significance

Escrow was among the first uses proposed for a contract that can hold money, and this is that idea at its smallest: two release paths, a third party who can take either, and no timeout. Writing the counterparties into the code rather than passing them in makes the contract single-use, which is the trade the design accepts in exchange for having nothing to configure.

Context

Deployed in mid 2016, when the common examples of what contracts were for were escrow, voting and crowdfunding, all of them variations on holding money under a rule that no participant can change.

Key Facts
Deployment Block
1,755,000
Deployment Date
Jun 23, 2016, 05:44 AM
Code Size
670.0 B
Transactions by Year
20164

Description

An escrow with three roles. The seller and the arbiter are hardcoded in the constructor as literal addresses, and the account that deploys the contract becomes the buyer. None of the three can be changed afterwards.

finalize() releases the whole balance to the seller and may be called by the buyer or the arbiter. refund() returns the whole balance to the buyer and may be called by the seller or the arbiter. Either side can therefore release the money to the other, and the arbiter can decide it alone, which is the entire dispute mechanism.

The seller is fixed as 0x1db3439a222c519ab44bb1144fc28167b4fa6ee6 and the arbiter as 0xd8da6bf26964af9d7eed9e03e53415d37aa96045, which is also the account that deployed it and so is both buyer and arbiter here. Neither call checks whether send succeeded, and there is no deadline: if nobody calls either function the balance stays where it is.

Heuristic Analysis

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

Detected Type: Utility

Bytecode Overview

Opcodes670
Unique Opcodes51
Jump Instructions14
Storage Operations6

External Links

Related contracts