Back to Home

Wallet

Wallet
0x273930d21e01...d214872220a2
FrontierContract #352Source VerifiedEdit this contract
Deployed August 20, 2015 (11 years ago)Block 116,526

Gav Wood's multi-sig, daily-limited wallet: the shared implementation that 111 Frontier-era 49-byte forwarders CALLCODE into.

Frontier EraVerified Source

Historical Significance

This is the canonical early Ethereum multi-signature wallet and one of the first serious pieces of contract engineering on the chain: an owner set, hash-keyed confirmation accounting, and a daily allowance, all written before there was a token standard or an audit industry. It shipped as the multi-signature option in the official Ethereum Wallet and Mist, and the same wallet.sol lineage was later carried into the Parity multi-sig wallet. Its use of a shared library reached by CALLCODE, with per-user state in a 49-byte forwarder, is the ancestor of the proxy pattern that now underpins most upgradeable contracts.

Context

Deployed 2015-08-20 by 0xb1a2b43a7433dd150bb82227ed519cd6b142d382. One hundred and eleven byte-identical 49-byte forwarders in the Ethereum History archive CALLCODE into this address, deployed by 63 distinct addresses between 2015-08-20 and 2015-10-17, including four from the library deployer itself. Because Frontier had no DELEGATECALL (EIP-7 arrived with Homestead in March 2016), CALLCODE was the only way to run shared code against a caller's own storage, and CALLCODE rewrites msg.sender to the calling contract. That is why authorisation here is written against tx.origin, which appears eleven times in the source: msg.sender would have been the forwarder, not the human owner.

Key Facts
Deployment Block
116,526
Deployment Date
Aug 20, 2015, 04:40 PM
Code Size
4.2 KB
Gas at Deploy
1,223,764
Transactions by Year
20168
20178
20193
20204
202212
20236
20247
202548
202623

Description

The dapp-bin wallet.sol, headed "//sol Wallet // Multi-sig, daily-limited account proxy/wallet. @authors: Gav Wood g@ethdev.com". Three contracts compose it. multiowned holds an owner set and a required-confirmations count, and its onlymanyowners modifier keys each pending operation by a hash so repeated calls with the same payload accumulate as confirmations of one operation rather than as separate requests. daylimit adds a rolling per-day spending allowance, letting a single owner move value under the limit without collecting signatures. Wallet combines them: spends under the daily limit execute immediately, larger ones enter the confirmation queue and fire once enough owners agree. The deployed runtime is 4031 bytes. Owner state lives in the caller's storage, not here, because every user wallet reaches this code through CALLCODE.

Source Verified

Etherscan verified
Heuristic Analysis

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

Detected Type: Wallet
Contains SELFDESTRUCT opcode

Bytecode Overview

Opcodes4,325
Unique Opcodes232
Jump Instructions269
Storage Operations158

External Links

Related contracts