00

The ProtocolWatchdog

Overwatch reads who can change the Solana protocols holding your deposits, and tells you when those controls get weaker.

How it works

  1. 01

    Map

    Who controls each protocol

    For each major protocol we read the upgrade authority, the multisig behind it, how many signers must approve a change, and how long that change waits. Each fact links to the account it came from.

  2. 02

    Watch

    Changes as they happen

    We subscribe to those accounts and signers. A removed timelock or lowered threshold shows up seconds after it confirms. Signers' durable nonce accounts are scanned hourly. We warn after a change lands; we cannot undo it.

  3. 03

    Warn

    Alerts and onchain scores

    Alerts go to Telegram, a webhook or email, written in plain English. Scores are also stored onchain, so a vault program can act without waiting for a person.

What you get

Control map

For each major Solana protocol: upgrade authority, multisig threshold, signers, timelock, durable-nonce exposure, admin powers, risky collateral, dead oracles, and the full history of governance changes.

Open the control map →
programauthoritysquads 2/5signersnonces
exposed ViP…bsi verified

Alerts & API

Alerts on Telegram, signed webhooks or email when a protocol's controls weaken. There is also a versioned API and a live event stream.

Set up alerts →
Overwatchbot

/watch drift

Watching Drift Protocol. Alerts at HIGH and above.

/status drift

Drift Protocol: grade A (85/100)
Upgrade authority: squads v4 vault
Multisig: 4-of-7, timelock 1 hour

🔴 CRITICAL · Example Lend removed its 2 days safety delay

Onchain registry

Scores and risk flags are stored in accounts any Solana program can read, so a vault can pull deposits out the moment a protocol's flags turn red.

Read how programs use it →
src/lib.rs03
  1. 12 #[account(seeds = [b"risk", id.as_ref()], bump,
  2. 13 seeds::program = overwatch_registry::ID)]
  3. 14 pub risk: Account<'info, RiskRecord>,
  4. 15
  5. 16+if risk.flags & RED_MASK != 0 { check_and_exit()?; }

The Drift pattern

If controls weaken within 14 days of a signer creating durable nonce accounts, the alert is rated critical. That is the sequence that came before the $285M Drift loss. The replay is a backtest of current rules on the public record.

Replay the Drift timeline →
overwatch — watch
  1. ·2026-03-23 signer-A, signer-B → durable nonce
  2. !SIGNER_NONCE_ACCOUNT_CREATED · CRITICAL (2/5 ≥ 2)
  3. ·2026-03-27 council migration · 2-of-5 · no delay
  4. ✕⚠ Drift pattern: weakening within 14d of nonce
  5. ✓backtest: flagged 9 days before the drain

Get started