A Frontier Day 1 movie voting contract where users send ETH to permanently rank movies on-chain — one of the earliest interactive dApps on Ethereum.
Key Facts
Description
A simple movie voting contract deployed on Ethereum's first full day of operation. Users call vote(bytes32) with ETH attached to cast votes for movies identified by their bytes32-encoded names. The contract tracks cumulative bids per movie in a mapping, maintains a dynamic array of unique movie entries, and counts total movies via movie_num. If a movie receives its first vote, it gets added to the movies array.
The deployer voted for "eXistenZ" (the 1999 David Cronenberg science fiction film) with bids ranging from 0.001 to 0.01 ETH. The deployer created five contracts total on Day 1, iterating on this design. The contract still holds 0.011 ETH from 2015.
The same deployer created the SciFi contract one day later at block 51,291. Both contracts share the same voting logic and a distinctive coding pattern: the developer reads bids[movie] into a temporary variable for the zero check but then writes back with bids[movie] += msg.value directly, causing a redundant storage read. The SciFi version uses a fixed-size bytes32[1000000000] array instead of a dynamic array and was compiled with v0.1.4 instead of v0.1.1.
Source Verified
Runtime: exact match (273 bytes). Creation: exact match (292 bytes). Proved by @lecram2025 (DeadDefi).
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
contract MovieVoting {
mapping(bytes32 => uint) public bids;
bytes32[] public movies;
uint public movie_num;
function vote(bytes32 movie) {
if (msg.value == 0) return;
uint b = bids[movie];
if (b == 0) {
movies[movie_num++] = movie;
}
bids[movie] += msg.value;
}
}