Independent node operators. We run validators and full nodes, and we publish the tooling we built to keep them alive — because the gap between "the node is up" and "the node is healthy" is where operators actually lose sleep.
Everything below is in production on our own machines before it is published.
Testnet full node since April 2026, on the current release, tracking chain head.
| Repository | What it is |
|---|---|
| monad-tools | monad-doctor — 55 pre-flight checks with JSON output — and monad-validator-setup, 25 idempotent steps from a fresh server to a running node. Works for both full nodes and validators, on testnet and mainnet |
| monad-grafana | Self-hosted Prometheus + Grafana: 4 containers, a 54-panel dashboard, 17 alert rules, and TrieDB metrics node_exporter cannot see |
| monad-tech · live | Real-time testnet observability: parallel-execution metrics, block execution breakdown, validator comparison, and an incident timeline with five Monad-specific anomaly detectors |
| monad-tg-bot | Telegram alerts with state-transition filtering, plus a Prometheus bridge that delivers monad-grafana alerts without a separate Alertmanager |
Two design choices run through all of it. Absence of data is not zero — a probe that could not run reports "unknown", never "fine", and gates fail closed. And every check has to work in all four cases: full node or validator, testnet or mainnet, because a tool that only works on the machine its author owns is not a tool.
provenance-tg-bot — monitoring for a
Provenance (Cosmos SDK) mainnet validator: jail, missed blocks, voting power, sync. Jail
detection compares jailed_until against now, because Cosmos never resets it on unjail.
- MOST participant (Monad Open Source Track), contributing to the pool repositories
- Running the public dashboard at monad-tech.com
- Preparing a Monad validator bid; the testnet node stays up regardless