Back to Home

Contract 0xd3b727dc4f38...3451a20206a9

Utility
Part of The Piper Merriam Collection
0xd3b727dc4f38...3451a20206a9
FrontierSource VerifiedEdit this contract
Deployed September 24, 2015 (10 years ago)Block 283,945

The bonded caller pool of the Ethereum Alarm Clock: callers post a bond, take turns being the designated executor, and forfeit it if they miss.

Frontier EraVerified Source

Historical Significance

The Ethereum Alarm Clock answered a problem the EVM has by design: nothing on chain runs unless an account sends a transaction, so a contract cannot wake itself at a future block. Piper Merriam's answer was to pay whoever does send it. A scheduler holds the requester's deposit, anyone may execute the call once its block arrives, and the executor is reimbursed for gas plus a margin. That shape, a public bounty for executing someone else's scheduled work, backed by bonded callers who get first refusal, is the one keeper networks settled on later.

Context

The Alarm Clock was built on mainnet through the autumn of 2015, and each revision was deployed as a complete new set rather than upgraded in place, so several generations of the service sit on chain side by side. The code is Frontier Solidity: no events are emitted, the log statements are commented out, and a failed check signals an error by reading past the end of an empty array so the transaction consumes its gas and reverts.

Key Facts
Deployer
Piper Merriam(0xd3cda9...293601)
Deployment Block
283,945
Deployment Date
Sep 24, 2015, 04:13 PM
Code Size
5.0 KB

Description

CallerPool decides who gets first refusal on executing a scheduled call in the Ethereum Alarm Clock. A caller deposits a bond, joins the pool, and from then on each call's grace period is divided into four-block windows. The pool picks a starting offset from the call key and steps through its members one window at a time, so a different caller is designated in each window; the last two windows are open to anyone.

A caller who lets their window pass forfeits the minimum bond to whoever executes the call instead. The minimum bond is not a fixed number: it is the current gas price multiplied by the block gas limit, so it tracks what executing a call actually costs. Joining and leaving take effect in a later generation of the pool rather than at once, which keeps the membership frozen for longer than any call's grace period and stops the designated caller changing under a call already in flight.

The pool is created by the scheduler's constructor and accepts pool accounting calls only from that scheduler.

Heuristic Analysis

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

Detected Type: Utility

Bytecode Overview

Opcodes5,168
Unique Opcodes201
Jump Instructions352
Storage Operations116

External Links

Related contracts