Setting Up Tenderly Alerting for Contract Monitoring
A production contract without monitoring is a contract whose problems you learn about from Twitter, not from an alert. Tenderly solves this in 1-2 hours of setup.
What Tenderly Alerting Can Do
Tenderly allows you to set up alerts on specific contract events, storage variable changes, transactions above a threshold, calls to specific functions, and failed transactions. All without writing your own indexer.
Main types of triggers:
| Trigger | Example Use |
|---|---|
| Successful Transaction | Large withdrawal from vault |
| Failed Transaction | Production errors |
| Event Emitted | Transfer above 100k USDC |
| State Change | Owner/admin change |
| Function Called | Pause or emergencyWithdraw invocation |
| Balance Change | Treasury balance change |
Setup
- Add contract to Tenderly (ABI + address + network)
- Alerts → Add Alert → select trigger type
- Configure filters (e.g.,
value > 100000e6for USDC) - Choose destination: Slack, Telegram, PagerDuty, webhook, email
For critical events (pause, owner change, anomalous withdrawals) — Telegram/PagerDuty with immediate delivery. For informational (normal transactions, protocol events) — Slack channel for the team.
Webhook Integration
Tenderly can send a webhook POST request with transaction details. This allows building custom logic: auto-pause contract on anomaly, write to database, notification with enriched context.
{
"id": "alert_id",
"contract": "0x...",
"network": "1",
"transaction": {
"hash": "0x...",
"from": "0x...",
"value": "1000000000000000000"
},
"trigger": "successful_transaction"
}
Limitations
Tenderly is a managed service. For full control and critical data privacy, consider alternatives: own indexer on The Graph, Goldsky, or OpenZeppelin Defender Sentinel (more flexible trigger engine).
For most projects, Tenderly Alerting is the optimal balance between setup speed and functionality. Setting up basic monitoring takes 1 business day, including documentation for the team.







