The contract keeps changing
after the report is signed.
Your audit was a photograph. This watches what happens next.
A scan is a reading of one moment. The owner key moves, supply is minted, a proxy is upgraded, liquidity leaves — and the report was never wrong, it was just answering a question about a moment that has passed. Watchtower reads the 7 events that change what that report is worth, every 15 minutes, and tells you within minutes of one happening.
The 7 things it watches on a contract
Not a feed of everything that happens — 7 events chosen because each one changes what an audit report is worth. Every entry below is read out of src/watch.js when this page is built, so the list cannot advertise something the engine does not actually watch.
Ownership transferredhigh
The owner is the account that can change the rules. When it moves, everything a report said about who controls this contract stopped being true.
New tokens mintedhigh
Supply appearing after launch dilutes every holder. The check reads Transfer events out of the zero address — the only way new units can be created.
Paused / unpausedhigh
A pause switch that has never been used and a pause switch that was just flipped are different contracts to hold. Trading stopping is the moment you want to hear about first.
Proxy upgradedcritical
A proxy upgrade replaces the code behind the same address. Every finding in every report about this contract was about the code that is no longer there.
Admin role grantedmedium
Role grants are how an ordinary caller quietly becomes an administrator. It is the slowest of these to notice by hand and the easiest to miss in a block explorer.
Liquidity removedcritical
Liquidity leaving the pool is the one event holders find out about last and care about most. Read from the pair's own burn events, not from a price feed.
Runtime code changedcritical
The runtime bytecode at the address is hashed at setup and re-hashed on every sweep. If it differs, the code changed — whatever mechanism was used, and whether or not it emitted anything.
And one thing it watches on a wallet
Large or unlimited approvals. Every time a wallet uses a DEX, a mint or a bridge it grants a contract permission to move a token on its behalf, and those permissions do not expire. A watcher on a treasury or a deployer wallet reports an approval the moment it is granted — with a threshold you set, because "large" without a number is a matter of opinion.
How it works
A baseline is read once, at setup
The head block, the runtime code hash and the pool balance are read the moment you add an address. Everything after is a comparison against that. This is why a watcher created today cannot alert about something that happened last week — and it says so rather than pretending to have seen it.
A cron sweep, every 15 minutes
Each sweep asks the chain for the logs since the last cursor, filtered to the event topics you chose. The block range per chain is the chain's own block rate, not a constant — a range that works on Ethereum leaves Arbitrum permanently behind and quietly missing events.
An alert that says what to do
What changed, why it matters and the transaction that did it, with a link to the explorer. Every event row keeps a delivery flag, so an alert that fired into nowhere is shown as undelivered rather than as nothing.
What it cannot see
A monitoring product that only lists its strengths is asking you to find the gaps yourself, in production.
Blind to
- Everything off-chain. How the keys are stored, who holds them, what the team decides. The chain records transactions, not intentions.
- Intent. It reports that the owner changed. Whether that was a planned handover or a compromise is a judgement it will not make for you.
- Anything before you added the address. The baseline is the start line. History is not backfilled.
- Chains it does not run on. Today: Ethereum, BNB Chain, Polygon, Base, Arbitrum, Optimism.
Delivery today is Telegram, linked to your account in one tap from the account page. If an account has no Telegram linked, the alert has nowhere to go — and both the dashboard and the moment you create a watcher say so out loud, rather than letting you find out through months of silence.
Getting started
Continuous monitoring is part of the AI Agents plan at $59.9/month, which covers 25 watched addresses. The fastest way in is not this page: scan a contract first. Every scan result carries a Watch this contract button that sets the baseline for you.