# An on-chain analytics dashboard the growth team can read

> Clixo built a real-time analytics dashboard for a DeFi protocol — indexing on-chain events into a product for non-technical users, instead of a Monday spreadsheet.

- **Client:** DeFi protocol (under NDA)
- **Industry:** Web3 / DeFi
- **Services:** Custom software, Blockchain & Web3
- **Stack:** Next.js, Node.js, PostgreSQL, The Graph, TypeScript
- **Published:** 2026-05-20
- **Canonical URL:** https://clixo.sh/work/onchain-analytics-dashboard

**Summary:** A dashboard that turns raw on-chain events into the views a growth team can actually read — without exporting the chain by hand.

## Results
- **Source:** Indexed contract events
- **Product:** TVL, wallets, fees, flows
- **Replaced:** The weekly export spreadsheet

A DeFi protocol came to us with a familiar problem: all of their truth lived on-chain, but none of it was readable. The growth team was exporting transactions by hand and rebuilding the same spreadsheet every Monday, and by the time the numbers were assembled they were already stale.

## The problem

On-chain data is complete but hostile to read. Events arrive as raw logs, values are denominated in base units, and the same economic action can span several transactions. The team did not need another block explorer — they needed the handful of numbers leadership actually checks, live and trustworthy.

- **Messy source data.** Raw events had to be decoded, normalized, and stitched into economic actions before any chart made sense.
- **Non-technical audience.** The end users were growth and leadership, not engineers — the product had to hide the chain, not expose it.
- **Trust over flash.** A dashboard nobody believes is worse than a spreadsheet. The numbers had to reconcile against the chain.

## What we built

- An **indexer** that subscribes to the protocol's contract events and writes a normalized, query-friendly store — decoding values and grouping multi-transaction actions into single events.
- A **dashboard** with the views leadership checks: TVL, active wallets, fee revenue, retention, and net flows — each one drillable.
- **Alerting** so anomalies (a TVL drop, a flow spike) surface on a screen instead of in a support ticket.

```mermaid
flowchart LR
  CE["Contract events"] --> IDX[Indexer]
  IDX --> NS["Normalized store"]
  NS --> DB[Dashboard]
  NS --> AL[Alerting]
  AL --> NT[Notifications]
```

The hard part was never the charts — it was modeling messy on-chain data into something stable enough to trust. We spent the first stretch on the schema, because every chart downstream depended on it being right.

## How we approached it

We shipped against a single rule: every number on the dashboard had to reconcile against the chain. We built the indexer first, validated its output against known on-chain values, and only then drew a single chart. Once one metric was provably correct, the rest followed the same pattern.

Because the team needed it live, we deployed the indexer and dashboard early — ugly but correct — and refined the presentation in the open while real data flowed through it.

## What we will not claim

No ship-in-N-weeks headline, no indexing-latency SLA, no "manual reporting removed" percentage. Those figures are not in this repo. The public claim is the product: an indexer and a dashboard the growth team opens instead of assembling a weekly export.

Have on-chain data that no one can read? [Start a build](https://clixo.sh/#contact) or see how we approach [Web3 engineering](https://clixo.sh/services/smart-contract-development).

---

Clixo · 1141 W Bryn Mawr Ave, Itasca, IL 60143, US · [hello@clixo.sh](mailto:hello@clixo.sh)
[Start a build](https://clixo.sh/#contact) · [All services](https://clixo.sh/services) · [Agent guide (llms.txt)](https://clixo.sh/llms.txt)
