OpenZeppelin retired the hosted Defender platform on July 1, 2026. Options for replacing Defender Monitor: self-hosted OpenZeppelin Monitor, or a hosted lightweight alerting service.
OpenZeppelin announced a phased sunset of Defender: new sign-ups closed on June 30, 2025 and the hosted platform retired on July 1, 2026 (announcement, FAQ). Teams that used Defender Monitor for admin-event alerts need a replacement.
The official path. It is a Rust service with Docker images. It supports EVM chains, Solana and Stellar, has expression filters and missed-block recovery, and sends to Slack, Discord, email, Telegram, webhooks and scripts. Defender can export your monitors as Monitor config files (migration guide). You run the server, RPC endpoints and secrets yourself.
If you only need "tell us when this proxy is upgraded, this Safe's owners change, or this wallet approves something", Ledgerbell covers that on Base, Ethereum, Arbitrum and OP Mainnet without servers: a preset admin-event set (ERC-1967 upgrades, Ownable, AccessControl, Pausable, Safe owner/threshold/module/guard, Timelock, Governor), custom event signatures, and Discord/Slack/Telegram/ntfy/JSON webhooks. It has no function-call monitoring, no automatic actions, no SLA, and it polls about once a minute. Be honest with yourself: for high-value protocols, run the self-hosted Monitor too.
A cron job calling eth_getLogs with a stored block cursor and a topic0 allow-list goes a long way. The hard parts are RPC range limits, reorgs and never skipping a range silently.
Free: 3 watches and 50 alerts/day, polled about once a minute. Pro (30 watches, 1,000 alerts/day) is 5 USDC on Base per 30 days. Or use the API:
curl -s -X POST https://ledgerbell.quietworklabs.workers.dev/api/key
curl -s -X POST https://ledgerbell.quietworklabs.workers.dev/api/watch -H 'content-type: application/json' -H 'x-api-key: lb_...' \
-d '{"chain":"base","kind":"contract","address":"0x...","webhook":"https://ntfy.sh/your-long-random-topic"}'