A contract goes live after an audit. The audit checked the code on one day. From then on, the contract changes owner, gets upgraded, moves money and talks to bots, and somebody has to notice when one of those things is not supposed to happen.
Most small teams notice from users, from a block explorer tab left open, or from a post on X. SmartAlert is a monitor for that gap: you paste a contract address, and it tells your team in Telegram, Slack or Discord when something on the contract is off.
What it watches
SmartAlert reads public chain data on Ethereum, BNB Chain, Base and Arbitrum. It does not touch your contract and needs no code change. From the address and the ABI it builds metrics, and rules check those metrics.
- Admin changes. Ownership transferred, a role granted or revoked, a proxy upgraded, the proxy admin changed, Safe owners or threshold changed, the contract paused. These are the first on-chain signs of most takeovers.
- Money, in dollars. A transfer above $X, priced at the block and optionally filtered by sender. The total value of a treasury below a floor, including when a price drop crosses it. Prices come from Chainlink, with CoinGecko as a fallback.
- Operations. A keeper or relayer wallet with gas for fewer than N days. A balance that is low and got no top-up in an hour. Failed transactions from your bots.
- Activity. Any event count or value per hour: transfers, swaps, deposits, claims. Spikes and a contract that suddenly goes quiet.
- State. Values read through view functions, such as
paused()returning true.
When you add a contract, SmartAlert suggests rules from its ABI. ERC-20, ERC-721 and ERC-1967 proxies get matching templates automatically. Nothing runs until you turn it on.
Two things that keep alerts useful
A norm for each hour. Activity on most contracts is low at night and high during the day. One fixed threshold is either noisy at peak hours or silent at night. SmartAlert can compare each hour with the same hour on previous days instead (a median with a robust spread), so a burst at 3 a.m. is caught and a busy afternoon is not an alert.
A check on history before you turn a rule on. Every rule shows, on a chart of the contract's real past, where it would have fired. If it would have fired forty times last month, you see that before it wakes anyone up. You can also give a target, such as "no more than 2 a week", and SmartAlert picks the threshold.
Where alerts go
Telegram is free. Slack, Discord, email, PagerDuty and a webhook come with Pro. An alert carries the value, the threshold or this hour's norm, the time and a link to the transaction. When the condition clears, you get a "Back to normal" message, and PagerDuty incidents close on their own.
If SmartAlert's own data falls 5 minutes or more behind the chain, paid and trial projects get a message about it. A monitor that is silent because it is broken should say so.
For your users
A project can have a public status page for its contracts: current state, a 90-day bar and incidents. Holders can subscribe to it in Telegram. SmartAlert also keeps public pages for about 400 active contracts, which anyone can open without signing up.
What it does not do
- It does not pause or block anything. It alerts. Pausing needs your own admin key or an automated response product.
- It does not read the mempool. It reads confirmed blocks. On Ethereum it waits for 12 confirmations (about 144 seconds), and a rule is checked every minute on Pro. If an attacker drains a contract within two minutes of the first sign, the first loss is gone before any confirmed-block monitor can speak. Later steps of the same attack are not.
- It does not replace an audit or a security team. It is the part that notices.
Price
$0 gets 2 contracts, 3 rules and a Telegram channel, checked every 5 minutes. Pro is $30 a month, Business $99. The first 14 days of a project work with Pro limits.
Try it
Paste a contract address at smart-alert.io. The step-by-step setup is in How to set up smart contract monitoring in 5 minutes.
---
*I build SmartAlert. If you run a contract and want to see what these alerts would look like on it, reply here or write to me on X.*