The brief

Moonwell shipped a governance upgrade that changed how the protocol captures and distributes OEV, the revenue surfaced when a position gets liquidated. The upgrade was already deployed when we joined: contracts on-chain, audit clean, ready to earn.

The team had no way to see if it was actually working.

"We can read the contracts, but we can't read the protocol. Build us the surface that proves the upgrade is paying for itself, or isn't."

What we built

A purpose-built dashboard, hosted on Dune, that decomposes every liquidation event on Base and Optimism into the four flows that matter:

  • Revenue captured by the protocol
  • Incentives paid out to liquidators
  • Net OEV per market, per chain, per day
  • Liquidator concentration, who's doing the work, who's getting paid

Behind it: a pipeline of normalized liquidation events sourced from our archive nodes, a per-market revenue model, and an alerting layer that pings the team when concentration exceeds a healthy threshold.

The numbers, first 14 days

Revenue Captured
$14,000+
Routed to the Moonwell treasury via the upgraded liquidation contracts.
Liquidator Incentives
$300,000+
Paid out to liquidators, keeping the market healthy and well-served.
Time to Insight
2 weeks
From "we shipped a contract" to "we can prove it works." Quantified, not anecdotal.

Why it mattered

Without a custom analytics surface, this would have been impossibly tedious to quantify, events span two chains, multiple markets, and a flow that splits at the contract level. The team would have known the upgrade shipped. They wouldn't have known if it was working.

The dashboard turns the upgrade into a continuous, public proof: every liquidation, every payout, on a single surface the team and the community check daily.

Stack

  • Source, Datum Labs archive nodes, Base + Optimism
  • Indexer, liquidation event normalization, per-market
  • Warehouse, Dune-native, materialized for sub-second loads
  • Surface, public Dune dashboard + private slack alerts