How to get an alert when a Safe multisig owner or threshold changes

Watch a Safe (Gnosis Safe) for AddedOwner, RemovedOwner, ChangedThreshold, module and guard changes and get a Discord, Slack, Telegram or phone push alert.

A Safe's security depends on its owner set, its signing threshold, and any enabled modules or guards. Each change emits an event from the Safe contract itself, so you can watch for it without trusting any off-chain service.

The events to watch

Eventtopic0Why it matters
AddedOwner(address)0x9465fa0c962cc769…A new signer can now approve transactions.
RemovedOwner(address)0xf8d49fc529812e9a…A signer was dropped; check it was planned.
ChangedThreshold(uint256)0x610f7ff2b304ae89…A lower threshold means fewer signatures move funds.
EnabledModule(address)A module can execute transactions without owner signatures. This is the most dangerous change.
ChangedGuard(address), ChangedFallbackHandler(address)Changes what checks run on every transaction and how the Safe answers unknown calls.
ExecutionSuccess(bytes32,uint256)Any executed transaction, useful as a low-volume "something happened" feed.

Owner changes are themselves Safe transactions, so they need the current threshold of signatures. An alert does not stop them; it tells the other signers and the community in minutes instead of days.

Do it yourself

Poll eth_getLogs on the Safe address every block range with no topic filter, then match topics[0] against the hashes above. Keep a block cursor so you never miss a range after an RPC error.

Doing it with Ledgerbell (free tier)

  1. Open the Ledgerbell dashboard and click Create a new key (no signup, no email; save the key).
  2. Pick the chain (Base, Ethereum, Arbitrum One or OP Mainnet), type Contract / Safe admin, paste the address.
  3. Paste a webhook URL (Discord, Slack, Telegram bot, ntfy or any JSON endpoint) and click Add watch. Use test to send a sample message.

The contract type already includes every Safe owner, threshold, module, guard, fallback-handler and execution event, plus proxy upgrades and ownership transfers.

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"}'