Skip to content

Commit 051babb

Browse files
Expand monitoring section (#421)
* feat(monitoring): redesign monitoring section with tools catalog and first principles * Merge branch 'develop' into feat/monitoring-improvements * chore(contributors): add JosepBove as Monitoring framework steward * chore: remove docs/pages/config/index.mdx * docs(monitoring): add alert on alert tampering recommendation * docs(monitoring): sort tools alphabetically and rename open-source section * Refine monitoring overview and response mechanisms Clarified monitoring failures and emphasized the importance of documented responses for alerts. Expanded on the role of automated systems in response mechanisms. * Remove Forta Firewall details from tools.md Removed Forta Firewall section from monitoring tools documentation. I don't want us to suggest something that has been deprecated for the past three years, and not a single update. If we want to add it, let's just add a more straightforward suggestion * Revise email usage guidelines for critical alerts Clarified the recommendation against using email for critical alerts. --------- Co-authored-by: Matías Aereal Aeón <388605+mattaereal@users.noreply.github.com>
1 parent d92804f commit 051babb

File tree

9 files changed

+282
-8
lines changed

9 files changed

+282
-8
lines changed

docs/pages/config/contributors.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,20 @@
11
{
2+
"JosepBove": {
3+
"slug": "JosepBove",
4+
"name": "Josep Bove",
5+
"avatar": "https://avatars.githubusercontent.com/JosepBove",
6+
"github": "https://github.com/JosepBove",
7+
"twitter": "https://twitter.com/JosepBove",
8+
"website": null,
9+
"company": "OP Labs",
10+
"role": "steward",
11+
"job_title": null,
12+
"description": "Steward of Monitoring framework",
13+
"badges": [
14+
{ "name": "Framework-Steward", "assigned": "2026-03-17", "framework": "Monitoring" },
15+
{ "name": "First-Contribution", "assigned": "2026-03-16" }
16+
]
17+
},
218
"mattaereal": {
319
"slug": "mattaereal",
420
"name": "matta",

docs/pages/monitoring/guidelines.mdx

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ description: "On-chain monitoring: track large fund transfers, token minting, an
44
tags:
55
- Engineer/Developer
66
- Security Specialist
7+
contributors:
8+
- role: wrote
9+
users: [JosepBove]
10+
- role: reviewed
11+
users: []
12+
- role: fact-checked
13+
users: []
714
---
815

916
import { TagList, AttributionList, TagProvider, TagFilter, ContributeFooter } from '../../../components'
@@ -19,33 +26,88 @@ import { TagList, AttributionList, TagProvider, TagFilter, ContributeFooter } fr
1926
Effective on-chain monitoring is complex and involves setting up systems and processes to continuously observe
2027
blockchain activities and detect any anomalies.
2128

29+
## Key Principles
30+
31+
- **Transparency:** Prefer open-source or auditable tools so your monitoring infrastructure can itself be reviewed.
32+
- **Real-time detection:** Minimize the time between an on-chain event and the alert reaching a responder.
33+
- **Automation:** Automate repetitive detection tasks to reduce human error and ensure consistent coverage.
34+
- **Scalability:** Design your monitoring setup to scale as protocol activity and the number of monitored contracts grows.
35+
2236
## Best Practices
2337

2438
### Define Monitoring Objectives
2539

26-
1. Determine the critical metrics to monitor, such as large fund transfers, token minting events, and changes in
27-
contract ownership.
40+
1. Determine the critical metrics to monitor. Common categories include:
41+
- Large fund transfers from protocol or treasury wallets
42+
- Token minting and burning events
43+
- Changes in contract ownership or admin roles
44+
- Contract upgrades and proxy implementation changes
45+
- Access control modifications (role grants, revocations)
46+
- Unusual gas usage patterns that may indicate griefing or exploitation attempts
2847

2948
### Implement Monitoring Tools
3049

3150
1. Use automated monitoring tools that can continuously track blockchain activities and generate alerts for anomalies.
51+
See the [Tools](/monitoring/tools) page for a catalog of available options.
3252
2. Supplement automated tools with periodic manual reviews.
3353

3454
### Establish Alerting Mechanisms
3555

3656
1. Set up real-time alerts to notify relevant project members of any suspicious activities or threshold breaches.
37-
2. Use multiple channels for alerts, such as email, SMS, and messaging apps where available, to ensure timely response.
57+
2. Use multiple channels for alerts (Discord webhooks, Telegram bots, PagerDuty, Slack) to ensure timely delivery.
58+
3. Every alert must have a designated owner and a documented response. An alert with no one responsible is
59+
indistinguishable from no alert at all.
60+
61+
### Monitoring Strategies
62+
63+
Structure monitoring coverage across these tracks:
64+
65+
#### Transaction monitoring
66+
67+
- Large fund transfers above defined thresholds
68+
- Unusual transaction frequency from key addresses
69+
- Flash loan interactions with protocol contracts
70+
71+
#### Contract event monitoring
72+
73+
- Token minting and burning
74+
- Approval and transfer events outside normal patterns
75+
- Contract upgrades and ownership transfers
76+
- Admin role grants and revocations
77+
78+
#### Bridge monitoring
79+
80+
- Unusual inflow or outflow volumes through bridge contracts
81+
- Bridge contract state changes or ownership modifications
82+
83+
#### Oracle and governance monitoring
84+
85+
- Price feed deviations beyond expected bounds
86+
- Unexpected governance proposals or accelerated vote execution
87+
88+
#### Node and network monitoring
89+
90+
- Block propagation times and node health
91+
- Network latency affecting transaction confirmation
92+
- RPC endpoint availability
3893

3994
### Regular Reviews and Updates
4095

4196
1. Conduct regular reviews of your monitoring systems to ensure they are functioning correctly and covering all
42-
necessary metrics.
97+
necessary metrics.
4398
2. Regularly update thresholds and alert configurations to reflect your current needs.
99+
3. **Test your alerts periodically**: verify that alert delivery actually works end-to-end, not just that the
100+
detection rule is configured. A misconfigured webhook or expired token can silently break your alerting.
101+
4. **Alert on alert tampering**: configure alerts for the disabling or modification of existing alerts. This
102+
protects against both accidental misconfiguration and adversarial tampering that could silently disable your
103+
detection coverage.
44104

45105
### Incident Response
46106

47107
1. Develop and maintain an [incident response plan](/incident-management/overview) to handle alerts and anomalies as
48-
soon as possible.
108+
soon as possible.
109+
2. Document who gets paged for each alert category and what the first response steps are. This should be decided
110+
before an incident, not during one.
49111

50112
---
51113

docs/pages/monitoring/index.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ title: "Monitoring"
1313

1414
- [Monitoring](/monitoring/overview)
1515
- [On-Chain Monitoring Guidelines](/monitoring/guidelines)
16+
- [On-Chain Monitoring Tools](/monitoring/tools)
1617
- [Monitoring Alert Thresholds](/monitoring/thresholds)

docs/pages/monitoring/overview.mdx

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
---
22
title: "Monitoring | Security Alliance"
3-
description: "Monitoring Framework: Maintain blockchain security with on-chain monitoring. Detect anomalies and potential breaches in real-time with guidelines for alerts, thresholds, and tools."
3+
description: "Blockchain security monitoring framework: detect anomalies and breaches in real-time with guidelines for alerts, thresholds, and monitoring tools."
44
tags:
55
- Engineer/Developer
66
- Security Specialist
7+
contributors:
8+
- role: wrote
9+
users: [JosepBove]
10+
- role: reviewed
11+
users: []
12+
- role: fact-checked
13+
users: []
714
---
815

916
import { TagList, AttributionList, TagProvider, TagFilter, ContributeFooter } from '../../../components'
@@ -21,6 +28,29 @@ allows you to detect anomalies and potential security breaches in real-time, ena
2128
This section focuses on monitoring the on-chain security of a project, including guidelines for setting up monitoring
2229
systems, defining thresholds for alerts, and utilizing existing on-chain monitoring tools.
2330

31+
## First Principles
32+
33+
Before deploying any monitoring tool, establish the fundamentals that make monitoring effective.
34+
35+
### Know what you're monitoring and why
36+
37+
Define which on-chain events are meaningful to your project and what response each alert should trigger. A monitoring
38+
setup without defined responses is noise: it consumes attention without producing safety. For every alert you
39+
configure, answer: *who receives this, and what do they do when it fires?*
40+
41+
### Act on your alerts
42+
43+
Organizations fail to monitor in two ways: not logging at all or logging without acting. Both leave you blind.
44+
45+
Every alert must map to a concrete, documented response. For smart contract protocols, this typically means having a pause mechanism or circuit breaker and, in higher-maturity setups, possibly a carefully designed automated system that can trigger when a critical alert fires, but only where the trigger conditions and failure modes have been explicitly reviewed. Without this, monitoring only tells you what happened, not what you could have prevented.
46+
47+
### Monitor with redundancy *(higher maturity)*
48+
49+
No monitoring provider has perfect uptime or perfect detection. For critical systems, run two independent providers
50+
monitoring the same invariants in parallel (one self-hosted, one managed). If one has downtime or misses an event,
51+
the other still provides coverage. See the [Tools](/monitoring/tools) page for guidance on combining self-hosted and
52+
managed options.
53+
2454
---
2555

2656
</TagProvider>

docs/pages/monitoring/thresholds.mdx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
---
22
title: "Monitoring Alert Thresholds | Security Alliance"
3-
description: "Define on-chain monitoring thresholds without excessive false positives. Establish baseline metrics, set multi-layered alert thresholds, and implement anomaly detection for unusual token activity."
3+
description: "On-chain threshold configuration: set baseline metrics, multi-layered alerts, and anomaly detection rules to catch unusual blockchain activity."
44
tags:
55
- Engineer/Developer
66
- Security Specialist
7+
contributors:
8+
- role: wrote
9+
users: [JosepBove]
10+
- role: reviewed
11+
users: []
12+
- role: fact-checked
13+
users: []
714
---
815

916
import { TagList, AttributionList, TagProvider, TagFilter, ContributeFooter } from '../../../components'
@@ -18,7 +25,8 @@ import { TagList, AttributionList, TagProvider, TagFilter, ContributeFooter } fr
1825

1926
Setting appropriate thresholds for on-chain monitoring is hard when taking into account you want to detect unusual
2027
activities, without generating excessive false positives. Here are some guidelines for defining and configuring
21-
thresholds.
28+
thresholds. For guidance on what to monitor and how to set up alerting, see the
29+
[Guidelines](/monitoring/guidelines) page.
2230

2331
## Generic Guidelines
2432

@@ -53,6 +61,9 @@ compare it to its previous behavior. If for example it is common that 4% of toke
5361
day with 20% of tokens changing owner in the past 10 minutes, then that could be detected as an anomaly and a cause
5462
for investigation.
5563

64+
Several of the tools in the [Tools](/monitoring/tools) catalog offer built-in anomaly detection. Hypernative uses
65+
ML-based behavioral modeling, and Tenderly supports custom alert rules that can approximate anomaly thresholds.
66+
5667
---
5768

5869
</TagProvider>

docs/pages/monitoring/tools.mdx

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
---
2+
title: "On-Chain Monitoring Tools | Security Alliance"
3+
description: "On-chain monitoring tools catalog: open-source and commercial options for transaction monitoring, anomaly detection, alerting, and reliability assessment."
4+
tags:
5+
- Engineer/Developer
6+
- Security Specialist
7+
contributors:
8+
- role: wrote
9+
users: [JosepBove]
10+
- role: reviewed
11+
users: []
12+
- role: fact-checked
13+
users: []
14+
---
15+
16+
import { TagList, AttributionList, TagProvider, TagFilter, ContributeFooter } from '../../../components'
17+
18+
<TagProvider>
19+
<TagFilter />
20+
21+
# On-Chain Monitoring Tools
22+
23+
<TagList tags={frontmatter.tags} />
24+
<AttributionList contributors={frontmatter.contributors} />
25+
26+
> The tools below are primarily focused on EVM-compatible chains. For non-EVM chains (Solana, Cosmos, etc.), verify
27+
> chain support before selecting a tool. For critical systems, consider running monitors from two independent providers
28+
> simultaneously. See the [Reliability Considerations](#reliability-considerations) section below.
29+
30+
## Open Source / Self-Hosted
31+
32+
### BlockScout
33+
34+
Open-source blockchain explorer with monitoring capabilities. Track transactions, contract events, and token transfers
35+
with custom alerts for your contracts and addresses. Can be self-hosted for free (MIT license) or deployed via
36+
BlockScout's managed options: Autoscout (self-service managed hosting, $250-950/month depending on transaction volume)
37+
or Explorer as a Service (EaaS, enterprise pricing). A PRO API is also available with a free tier (100K credits/day,
38+
5 req/s) and paid plans from $49/month.
39+
40+
- **Chains:** Multiple EVM networks
41+
- **GitHub:** [blockscout/blockscout](https://github.com/blockscout/blockscout)
42+
- **Website:** [blockscout.com](https://www.blockscout.com)
43+
44+
### Prometheus + Grafana
45+
46+
Infrastructure-level metrics collection (Prometheus) and visualization/alerting (Grafana). Useful for monitoring
47+
blockchain node health, block propagation times, RPC endpoint availability, and custom on-chain metrics exported
48+
via a scraper.
49+
50+
- **Chains:** Chain-agnostic (infrastructure layer)
51+
- **GitHub:** [prometheus/prometheus](https://github.com/prometheus/prometheus) | [grafana/grafana](https://github.com/grafana/grafana)
52+
53+
## Commercial / Hosted
54+
55+
### Etherscan
56+
57+
Address monitoring via Watch List, free for registered users. Monitor up to 50 Ethereum addresses and receive
58+
email notifications on inbound and outbound transactions. Configurable per address via the account dashboard.
59+
The API supports polling-based monitoring (3 req/s, 100K calls/day on the free tier) but has no push or streaming
60+
endpoints; custom polling layers are required for automated alerting.
61+
62+
- **Free plan:** Watch List available with a free account; API free tier for personal use
63+
- **Chains:** Ethereum (and Etherscan-family explorers for other EVM chains)
64+
- **Website:** [etherscan.io](https://etherscan.io)
65+
- **Documentation:** [docs.etherscan.io](https://docs.etherscan.io)
66+
67+
### Guardrail
68+
69+
Real-time DeFi security monitoring and automated threat response. Deploys customizable Guards (rule sets that
70+
inspect every on-chain transaction per block, per function, or per event) and can trigger automated protective
71+
responses such as contract pauses, wallet flagging, and on-call escalation. Covers DeFi protocols, DApps, oracle
72+
networks, DAO governance, and multisig operations.
73+
74+
- **Chains:** 30+ (Ethereum, Arbitrum, Optimism, Base, Polygon, zkSync, Scroll, and others)
75+
- **Website:** [guardrail.ai](https://www.guardrail.ai)
76+
77+
### Hexagate
78+
79+
Chainalysis's real-time on-chain threat detection and automated prevention platform. Uses ML-driven anomaly
80+
detection and GateSigner (pre-signing transaction simulation) to catch exploits before they land on-chain.
81+
Supports custom detection rules via Gatelang. Free access available for protocols building on partner chains
82+
(Base, Avalanche, Polygon, Cronos, Immutable, and others) through chain-specific application programs.
83+
84+
- **Free plan:** Available for protocols on partner chains; check with your chain's foundation
85+
- **Chains:** 75+ blockchains
86+
- **Website:** [chainalysis.com/product/hexagate](https://www.chainalysis.com/product/hexagate/)
87+
88+
### Hypernative
89+
90+
Machine learning-based anomaly detection and pre-crime threat detection for DeFi protocols. Detects novel attack
91+
patterns by modeling protocol behavior rather than relying solely on known signatures.
92+
93+
- **Chains:** 70+ blockchains
94+
- **Website:** [hypernative.io](https://hypernative.io)
95+
96+
### Tenderly
97+
98+
Real-time smart contract monitoring platform with a free tier. Supports 12 alert trigger types (function calls,
99+
event emissions, balance changes, state variable changes, and transaction value thresholds) with delivery to
100+
8 destinations: Slack, Discord, Telegram, email, webhooks, PagerDuty, Sentry, and Web3 Actions (TypeScript
101+
serverless functions that run on Tenderly's infrastructure). The CLI and SDKs are open-source (GPL-3.0).
102+
103+
- **Free plan:** Available; exact monitoring quotas visible on the pricing page
104+
- **Chains:** 100+ networks
105+
- **Website:** [tenderly.co](https://tenderly.co)
106+
- **GitHub:** [Tenderly](https://github.com/Tenderly) (CLI, SDKs, framework plugins)
107+
108+
## Reliability Considerations
109+
110+
Your monitoring system is only effective if it is itself reliable. Before committing to a tooling setup, evaluate
111+
these factors:
112+
113+
### Self-hosted vs. managed
114+
115+
| | Self-Hosted | Managed Platform |
116+
| --- | --- | --- |
117+
| **Control** | Full control over configuration and data | Vendor controls infrastructure |
118+
| **Operational burden** | You own uptime, upgrades, and maintenance | Vendor handles ops |
119+
| **Vendor risk** | None | Platform downtime or shutdown affects you |
120+
| **Cost** | Infrastructure cost + engineering time | Subscription fee |
121+
122+
### Key reliability metrics to evaluate
123+
124+
- **Uptime SLA:** What guaranteed availability does the provider offer? Is there a status page?
125+
- **Time-to-alert:** How quickly after an on-chain event does a notification reach you? Minutes matter during an exploit.
126+
- **Alert delivery guarantees:** Does the platform guarantee at-least-once delivery, or is it best-effort?
127+
128+
### Redundancy recommendation
129+
130+
For any protocol holding significant value, do not rely on a single monitoring provider. Run at least two independent
131+
monitoring setups (ideally one self-hosted and one managed) covering the same critical invariants. If the managed
132+
platform has downtime or misses an anomaly, the self-hosted layer still provides coverage, and vice versa.
133+
134+
### Alert channel reliability
135+
136+
Your monitoring is only as good as the delivery mechanism for its alerts.
137+
138+
- **Prefer:** PagerDuty or OpsGenie (escalation policies, on-call rotations, delivery receipts)
139+
- **Use with care:** Slack, Discord, Telegram (useful for visibility, but easy to miss; no delivery guarantees)
140+
- **Don’t rely on email as the sole channel for critical alerts**: Email may be appropriate as a secondary or audit channel, not primary paging (high latency, often filtered to spam)
141+
142+
For high-severity alerts, use a dedicated paging tool with escalation so that if the primary on-call misses the
143+
alert, it automatically escalates to a secondary.
144+
145+
---
146+
147+
</TagProvider>
148+
<ContributeFooter />

utils/fetched-tags.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,10 @@
654654
"Engineer/Developer",
655655
"Security Specialist"
656656
],
657+
"/monitoring/tools": [
658+
"Engineer/Developer",
659+
"Security Specialist"
660+
],
657661
"/multisig-for-protocols/backup-signing-and-infrastructure": [
658662
"Engineer/Developer",
659663
"Security Specialist",

vocs.config.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ const config = {
236236
items: [
237237
{ text: 'Overview', link: '/monitoring/overview', dev: true },
238238
{ text: 'Guidelines', link: '/monitoring/guidelines', dev: true },
239+
{ text: 'Tools', link: '/monitoring/tools', dev: true },
239240
{ text: 'Thresholds', link: '/monitoring/thresholds', dev: true },
240241
]
241242
},

wordlist.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ reauthentication
307307
CAIP
308308
unbonding
309309
unbond
310+
Cronos
310311
Zenity
311312
Cowork
312313
nsjail

0 commit comments

Comments
 (0)