Back to Home

Arbitration

escrow
Part of The Vitalik Collection
0xe881af13bf55...ea8e3ff66f98
FrontierContract #1,636Exact Bytecode MatchEdit this contract
Deployed September 28, 2015 (10 years ago)Block 303,316

On-chain escrow by Vitalik Buterin (Sep 2015). Two parties designate arbiters; majority vote releases funds. One of the earliest smart contract dispute systems.

Frontier EraVerified Source

Historical Significance

One of the earliest decentralized dispute resolution contracts on Ethereum, deployed directly by Vitalik Buterin during the Frontier era. Demonstrates early experimentation with multi-party escrow, quadratic-resistant arbiter registration, and Ethereum as a programmable legal system.

Key Facts
Deployer
Vitalik Buterin(0x1db343...fa6ee6)
Deployment Block
303,316
Deployment Date
Sep 28, 2015, 02:38 PM
Code Size
2.5 KB
Gas at Deploy
695,834
Transactions by Year
20155

Description

One of the earliest decentralized dispute resolution systems on Ethereum, deployed by Vitalik Buterin as part of an experimental arbitration dapp on September 28, 2015 (block 303,316).

Parties create escrow contracts by calling mk_contract() with two recipient addresses, an array of arbiters, and a fee. Funds are held in escrow until a majority of arbiters vote for a winner. The contract also allows either party to instantly transfer to the other by voting (voteForA=0 if you're recipientA, etc.).

Key features:

  • mk_contract(): Create escrow with recipients, arbiters, arbiter fee, and description
  • vote(id, voteForA): Cast an arbiter vote; >50% majority triggers payout
  • ArbiterNotification events on creation
  • On resolution: storage zeroed out to reduce blockchain bloat
  • get_contract_value/recipients/arbiters/description: Read contract state

A second identical deployment exists at 0x7e2d0fe0ffdd78c264f8d40d19acb7d04390c6e8 (block 318,029, Oct 6 2015).

Bytecode verified as exact byte-for-byte match.

Source Verified

SerpentExact bytecode match(2,562 bytes)
Compiler: e5a5f87

Exact byte-for-byte match (0 diffs). Source: dapp-bin 08fe3e5b (arbitration/arbitration.se) with one correction: ArbiterNotification log args were reversed in original deployment (arbiters[i], id) vs committed order (id, arbiters[i]). Compiler: Serpent e5a5f875. Runtime: 2544 bytes.

Heuristic Analysis

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

Detected Type: escrow

Bytecode Overview

Opcodes2,562
Unique Opcodes176
Jump Instructions122
Storage Operations61

External Links