Bytecode verified via sibling
This contract shares identical runtime bytecode with Democracy DAO (0xb5b8a0fe...) which has been verified through compiler archaeology.
Sep 24, 2015 proto-DAO experiment — eight months before TheDAO. One of 10 byte-identical sister contracts deployed by 0x7931c901 in a 40-minute burst.
Key Facts
Description
Sister contract of 0xb5b8a0fed80719cc3903cd5108e9a513949cfec6 (byte-identical 2,343-byte runtime). See the canonical entry for full description, decompiled storage layout, and historical context.
This is one of 10 byte-identical proto-DAO contracts deployed by 0x7931c90100285910556fd3c6406942995930ad34 in a 40-minute burst on September 24, 2015, eight months before TheDAO went live.
Source Verified
Runtime bytecode reproduced exactly with soljson v0.1.1+commit.6ff4cd6, optimizer ON, via the legacy compile(source, 1) API. The trailing STOP byte before the appended keccak256(3) data constant is emitted only by v0.1.1, which pins the compiler version. External verification (2026-06-28): Etherscan verified with v0.1.1+commit.6ff4cd6, optimizer ON; the displayed source carries the EthereumHistory attribution line. Sourcify cannot verify this contract: it returns unsupported_compiler_version for v0.1.1 because the Sourcify compiler service cannot run the v0.1.1 build. Later compilers that Sourcify does run (v0.1.5 and up) do not reproduce this bytecode, which is pinned to v0.1.1 by the trailing STOP byte.
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)
// Submitted by EthereumHistory (ethereumhistory.com)
contract Democracy {
uint public debatingPeriod;
uint public voterShare;
address public founder;
Proposal[] public proposals;
uint public numProposals;
uint minimumQuorum;
event ProposalAdded(uint proposalID, address recipient, uint amount, bytes32 data, string description);
event Voted(uint proposalID, int position, address voter);
event ProposalTallied(uint proposalID, int result, uint quorum, bool active);
struct Proposal {
address recipient;
uint amount;
bytes32 data;
string description;
uint creationDate;
bool active;
Vote[] votes;
mapping (address => bool) voted;
}
struct Vote {
int position;
address voter;
}
function Democracy(uint _voterShare, uint _minimumQuorum, uint _debatingPeriod) {
founder = msg.sender;
voterShare = _voterShare;
minimumQuorum = _minimumQuorum;
debatingPeriod = _debatingPeriod * 1 minutes;
}
function newProposal(address _recipient, uint _amount, bytes32 _data, string _description) returns (uint proposalID) {
proposalID = proposals.length++;
Proposal p = proposals[proposalID];
p.recipient = _recipient;
p.amount = _amount;
p.data = _data;
p.description = _description;
p.creationDate = now;
p.active = true;
ProposalAdded(proposalID, _recipient, _amount, _data, _description);
numProposals = proposalID+1;
}
function vote(uint _proposalID, int _position) returns (uint voteID){
if (_position >= -1 || _position <= 1 ) {
Proposal p = proposals[_proposalID];
if (p.voted[msg.sender] == true) return;
voteID = p.votes.length++;
p.votes[voteID] = Vote({position: _position, voter: msg.sender});
p.voted[msg.sender] = true;
Voted(_proposalID, _position, msg.sender);
}
}
function executeProposal(uint _proposalID) returns (int result) {
Proposal p = proposals[_proposalID];
/* Check if debating period is over */
if (now > (p.creationDate + debatingPeriod) && p.active){
uint quorum = 0;
/* tally the votes */
for (uint i = 0; i < p.votes.length; ++i) {
Vote v = p.votes[i];
uint voteWeight = voterShare;
quorum += voteWeight;
result += int(voteWeight) * v.position;
}
p.active = false;
ProposalTallied(_proposalID, result, quorum, p.active);
}
}
function kill() { if (msg.sender == founder) suicide(founder); }
}External Links
Related contracts
Democracy DAO
Same deployerOn-chain governance contract with proposals, voting, and execution. Stripped-down version of the go-ethereum wiki Democracy DAO tutorial.
0xb5b8a0...9cfec6September 24, 2015ProtoDAO_0x7931c901_Sep24
Same deployerSep 24, 2015 proto-DAO experiment — eight months before TheDAO. One of 10 byte-identical sister contracts deployed by 0x7931c901 in a 40-minute burst.
0xcbe06c...54c81cSeptember 24, 2015ProtoDAO_0x7931c901_Sep24
Same deployerSep 24, 2015 proto-DAO experiment — eight months before TheDAO. One of 10 byte-identical sister contracts deployed by 0x7931c901 in a 40-minute burst.
0x8d0c13...ff4f34September 24, 2015ProtoDAO_0x7931c901_Sep24
Same deployerSep 24, 2015 proto-DAO experiment — eight months before TheDAO. One of 10 byte-identical sister contracts deployed by 0x7931c901 in a 40-minute burst.
0xba2423...0516e0September 24, 2015ProtoDAO_0x7931c901_Sep24
Same deployerSep 24, 2015 proto-DAO experiment — eight months before TheDAO. One of 10 byte-identical sister contracts deployed by 0x7931c901 in a 40-minute burst.
0xc602cb...c710c5September 24, 2015ProtoDAO_0x7931c901_Sep24
Same deployerSep 24, 2015 proto-DAO experiment — eight months before TheDAO. One of 10 byte-identical sister contracts deployed by 0x7931c901 in a 40-minute burst.
0xf9fe42...cdd61cSeptember 24, 2015