Back to Home

ShippingEscrow2

program
0x47618f0cba4e...8f39b8f11b45
FrontierContract #6,210Exact Bytecode MatchEdit this contract
Deployed January 9, 2016 (10 years ago)Block 822,661

A shipping escrow contract with public struct getters, late delivery penalties, and IPFS cargo documentation. Sibling of ShippingEscrow with added buyer/seller/

Frontier EraVerified Source

Historical Significance

An early example of iterative smart contract development on Ethereum. The developer deployed multiple versions of the same escrow concept within hours, progressively adding public getters for transparency. Demonstrates how Frontier-era developers tested and refined contracts directly on mainnet.

Context

Deployed in January 2016 during the Frontier era when Solidity was at version 0.1.5. Smart contract development had no testnets or established development frameworks. Developers deployed directly to mainnet, iterating through multiple contract versions in rapid succession.

Key Facts
Deployment Block
822,661
Deployment Date
Jan 9, 2016, 05:01 PM
Code Size
3.3 KB
Gas at Deploy
927,804
Transactions by Year
20162

Description

An iteration on the ShippingEscrow contract deployed by the same developer minutes later on Jan 9, 2016. ShippingEscrow2 adds public getters for all three data structures (seller, cargo, buyer), giving external callers full visibility into the escrow state.

The contract manages a transaction between a seller and buyer for physical goods shipment. The seller creates the escrow with cargo details including name, description, origin and destination countries, a penalty rate for late delivery, and an IPFS hash for documentation. A buyer enters the agreement by calling agreement() with ETH payment. After a 3-day waiting period (259,200 seconds), the escrowed payment can be released to the seller. The arrival() function calculates late delivery penalties based on days past the shipped date.

Compared to its sibling ShippingEscrow (0x50fb8066), this version uses lowercase function names (escrow, releasePayment, arrival, agreement) rather than PascalCase, removes the internal Escrow() call from agreement(), and exposes the full EscrowData struct through a cargo() getter returning all 13 fields including two dynamic strings.

The deployer created two additional identical copies of this contract on the same day with different test data, suggesting active iteration on the escrow design.

Source Verified

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

Exact bytecode match (init + runtime). 800 bytes init + 2615 bytes constructor args. Runtime 2039 bytes. v0.1.5 through v0.1.7 all produce identical output. Two identical clones at 0xbfb62a95 and 0xaddDDbD2.

Heuristic Analysis

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

Detected Type: program

Bytecode Overview

Opcodes3,415
Unique Opcodes182
Jump Instructions102
Storage Operations85

External Links