Search projects, hackathons, sponsors and tech

    ← All projects

    ChainSentry

    ChainSentry is an observability and alerting tool for Ethereum smart contract developers

    Demo

    About

    I come from a backend and DevOps background, and most production issues I have debugged were only possible to understand because of monitoring and observability tools. In backend systems, we have tools like ELK, Prometheus, Grafana, Loki, and alerting pipelines. If an external service fails, latency increases, or some unexpected error starts happening, we can look at logs, metrics, traces, and alerts to understand what went wrong. I wanted to bring that same kind of visibility to smart contracts. Once a smart contract is deployed, it is running in production and interacting with users, tokens, protocols, and other contracts. If one of those dependencies changes, fails, or starts behaving differently, the contract may also behave differently. But unlike backend services, smart contracts usually do not have a proper observability layer around them. ChainSentry helps developers monitor their smart contracts after deployment. A developer can register a contract, index its on-chain activity, view metrics, inspect event history, create dashboards, and set alerts for unusual behavior. For example, they can monitor event counts, transaction volume, success rate, gas usage, or value transferred. If something crosses a threshold, ChainSentry creates an issue and notifies the on-call person through email or phone call. The idea is simple: smart contract developers should not have to wait for users to report problems. They should be able to observe their contracts in production, understand what changed, and respond quickly.

    How it's made

    ChainSentry uses The Graph to get blockchain data in a reliable way. Directly hitting RPC endpoints for every dashboard or query is slow, expensive, and not suitable for a monitoring product. So the backend generates subgraph configurations for the smart contract and stores those generated artifacts in Google Cloud Storage. The indexed blockchain data is then ingested into ClickHouse, which is used for fast analytical queries. The backend is built with Node.js, Express, Prisma, PostgreSQL, and ClickHouse. PostgreSQL stores users, organizations, contracts, deployments, alert rules, on-call schedules, and issues. ClickHouse stores the high-volume event and transaction data that powers dashboards and metrics. The frontend is built with Next.js and gives developers pages for metrics, logs, traces, incidents, alerting, and contract configuration. I also integrated Resend and Twilio for alerting. When an alert rule is triggered, ChainSentry can send an email or place a phone call to the on-call developer. This was important to me because real observability is not just dashboards. It should also help the right person know when something is wrong. The project is basically my attempt to bring the DevOps monitoring workflow I use in backend systems into Web3, so smart contract developers can debug and monitor production contracts with the same confidence.