Back to HomeDeployer Vitalik Buterin(0x1db343...fa6ee6) Deployment Block 580,469 Deployment Date Nov 22, 2015, 05:05 PM Code Size 306.0 B Gas at Deploy 115,113
Deployed November 22, 2015 (10 years ago)Block 580,469
Dead man's switch: owner pings to stay alive, trustee can withdraw after 1000 seconds of inactivity
Frontier EraVerified Source
Context
Experimental dead man's switch contract by Vitalik Buterin (Nov 2015). Owner must call ping() periodically; after 1000 seconds of inactivity, designated trustee can call withdraw(). Verified: compiled with Serpent bc4ce59, exact runtime bytecode match.
Key Facts
Transactions by Year
20151
Deployment Transaction: 0xd0842bb4337cafa7...973a80e6857e8d95
Source Verified
SerpentExact bytecode match(306 bytes)
Compiler: Serpent
Exact 284-byte runtime match. Compiled with Serpent bc4ce59. Runtime extracted as result[14:14+284].
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Detected Type: dead_mans_switch
Frontier Era
The initial release of Ethereum. A bare-bones implementation for technical users.
Block span: 0 — 1,149,999
July 30, 2015 — March 14, 2016
Bytecode Overview
Opcodes306
Unique Opcodes65
Jump Instructions24
Storage Operations9
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Serpent)
data lastPing
data trustee
data owner
def ping():
if msg.sender == self.owner:
self.lastPing = block.timestamp
def setTrustee(x:address):
if msg.sender == self.owner:
self.trustee = x
def withdraw(to:address, amount:int256):
if msg.sender == self.owner:
send(to, amount)
return(1:bool)
elif block.timestamp > self.lastPing + 1000 and msg.sender == self.trustee:
send(to, amount)
return(1:bool)
else:
return(0:bool)