A keeper that executes onchain through KeeperHub, prices every rescue against the loss it would actually prevent, and attests the decision to Ethereum mainnet. Holds included, because a keeper that only records its successes is not an audit trail.
npm run dashboard): it reads a
KeeperHub API key, so it cannot be served publicly without handing that key to the
browser. Every row below links to a block explorer, where the record is live and
verifiable independently of this page.
Spotting a position in danger is easy. Getting the rescue mined at 3am during a gas spike is not. So we measured it: identical workloads, same unusable gas price, KeeperHub against plain ethers.js.
| Scenario | KeeperHub | ethers (blind gas limit) | ethers (default) |
|---|---|---|---|
| Gas underpricing (0.05 gwei vs ~0.98 market) | 4/4 landed | 0/4, all stuck | no data |
| Congestion (4 concurrent from one wallet) | 4/4 landed | 1/4 | 2/4 |
| Revert | all refused | all refused | all refused |
Sepolia, 2026-08-02, four trials per cell. One cell reads "no data" rather than 0% because those trials failed on our own network, and charging that to a backend would measure our connection instead of the thing under test. Revert shows no difference and is reported as such rather than dressed up. Method and raw data.
Holds are attested as well as rescues. The declined rescues are the interesting judgment calls, and a log that omits them proves nothing.
| When | Action | HF | Expected loss | Rescue cost | Attestation | Remediation |
|---|---|---|---|---|---|---|
| 2026-08-04 12:28 UTC | HOLD | 1.1200 | $0.10 | $1.24 | 0xc9d6540b… | none, held |
| 2026-08-04 12:26 UTC | HOLD | 1.3314 | $0.26 | $0.00 | 0xcf9fff66… | none, held |
| 2026-08-04 12:24 UTC | HOLD | 1.3314 | $0.26 | $0.00 | 0xf6059979… | none, held |
| 2026-08-02 12:04 UTC | ADD_COLLATERAL | 1.0400 | $4.74 | $1.18 | 0x2d60efde… | 0xc89edff9… |
Contract 0x06D8C09B5dbb9f9Bb96B7B20a351cdC5e16644D3, deployed through a CREATE3 factory on sponsored gas (deployment). Storage-free by design, so an attestation costs only the base transaction plus log data.
A KeeperHub workflow owns the CRITICAL tier server-side, so the position stays defended whether or not anything of ours is running. Showing the 6 most recent of 50.
| Started | Trigger | Status | Steps | Transactions |
|---|---|---|---|---|
| 2026-08-12 18:29 UTC | block | success | 3 | none, condition false |
| 2026-08-12 18:18 UTC | block | success | 3 | none, condition false |
| 2026-08-12 18:08 UTC | block | success | 3 | none, condition false |
| 2026-08-12 17:58 UTC | block | success | 3 | none, condition false |
| 2026-08-12 17:48 UTC | block | success | 3 | none, condition false |
| 2026-08-12 17:38 UTC | block | success | 3 | none, condition false |
Most runs do nothing, which is the correct outcome: the condition evaluates false and the workflow stops after three nodes without broadcasting anything.
The whole thing is one repository: the risk model, the chaos harness, the workflows, and a starter template that lands your first KeeperHub transaction with nothing but an API key.