Watchtower

Docs

How Watchtower works

What it watches, how it decides what matters, and how it stays safe.

How it works

Watchtower follows Robinhood Chain block by block, a few seconds behind the newest block. It looks for the standard events contracts emit when their admin settings change: OwnershipTransferred, Upgraded, Paused, RoleGranted, Safe multisig events, timelocks and more.

For each event it checks whether the contract existed in the block before. If it didn't, the event was part of the contract's creation (setup), so it's hidden from the default feed. Everything else is a real change.

For ownership and admin changes it also checks the new controller: if it's a wallet with almost no transaction history, the event is flagged critical, a common sign of a takeover.

Severity levels

Critical: could change who controls a contract or what its code does: upgrades, admin changes, pauses, signer removals, modules, and ownership moving to a brand-new wallet.

Warning: worth a look: ownership transfers to established addresses, powerful roles granted, multisig threshold changes, timelock actions.

Info: usually fine: renounced ownership, unpauses, roles revoked.

Severity is a guide, not a verdict. An upgrade can be routine maintenance, so always check the linked transaction.

Contract pages

Paste any address into the search box to see who controls it right now (owner, upgrade admin, logic contract, beacon), whether it's paused, and every admin event we've recorded. Live values are read straight from the chain; history starts when Watchtower began watching.

Safety & privacy

  • Watchtower only reads public blockchain data.
  • It will never ask for a private key or seed phrase, and it can't move funds.
  • You never need to connect a wallet.
  • Alerts tell you something happened; they can't stop it. Keep your own emergency plan.

Known limits

  • Only standard events are detected. A contract that changes admin settings without emitting a standard event won't show up in the feed (its live state on the contract page is still accurate).
  • Upgradeability is checked through the standard proxy storage locations (EIP-1967). Unusual proxy designs may not be detected.
  • Event times are estimated from block numbers (accurate to within seconds).
  • History covers the period since Watchtower started watching.

Public API

The data behind Chain Watch is available as a free, read-only JSON API (rate limits may apply):

  • GET /api/feed?severity=critical&kind=upgraded&limit=50&before=<id>
  • GET /api/contract/<address>
  • GET /api/stats

Questions? Start with Chain Watch to see it in action.