Money Market
Live on Envio hosted service

Money Market is the highest-velocity vertical bet — and the only one already shipped.

The candidate package picks vertical as the atomic unit. This site is a tunnel into the strongest vertical: money market. The Envio template is already deployed against Aave V3 Polygon, indexed end-to-end, with 14,401 / 14,401 cross-entity invariants passing. The 90-day work isn't build — it's distribution.

14,401
invariants passing
6 events
Aave V3 lifecycle
3 chains
Polygon · Arbitrum · Base
$22.5–315k
year-1 ARR band
querying…

Live indexer state

16

Reserves indexed

1,089

Liquidations

USDC

Top supplier base

5,234

Top reserve suppliers

Aave V3 · Polygon · queried client-side from indexer.dev.hyperindex.xyz

copy-paste curl

curl -sX POST https://indexer.dev.hyperindex.xyz/8fc0607/v1/graphql \
  -H 'Content-Type: application/json' \
  -d '{"query":"{ ReserveAggregator(order_by:{totalSupplied:desc}, limit:5){ asset totalSupplied uniqueBorrowers totalLiquidations } }"}'

02 · Method

The dual-angle vertical playbook, in four moves

The full method is in the candidate package's framing memo. This is the orientation tile so the money-market vertical reads as the worked example, not a one-off pitch.

01

Diagnose

Each vertical gets a Week-One technical diagnostic + positioning audit. Five-stage funnel × two root causes (tech + business). The output is a populated pain-map, not a vibe.

PAIN_MAP_MATRIX.md
02

Dual interventions

Every cell gets two owning artifacts — one engineer-side (template, handler, runbook) and one operator-side (positioning, pricing overlay, content track). Single-angle plans miss half the pain.

VERTICAL_PLAYBOOK.md
03

Sequence by ARR-velocity

Don't lead with the biggest logo. Lead with the lowest-friction account. Spark before Aave; the case study compounds the next five conversations.

GROWTH_PLAN.md
04

Compound through case studies

Every closed account becomes the qualification mechanism for the next outreach wave. Productise the path: template → trial → Production → Risk-Dashboard tier.

ENVIO_REVENUE.md

03 · Why money market

Three structural properties that make this its own vertical

Money market shares the event-streaming infrastructure with DEX and the analytics-as-product framing with Market Making — but the entity model, named accounts, and GTM motion are different enough that running it inside another vertical's playbook would dilute both.

PROPERTY 01

Per-(asset, user) state

A single user has one position per asset (collateral or debt), aggregated into a UserAggregator cross-reserve rollup. Neither DEX (per-pool) nor MM (per-maker) keying applies.

PROPERTY 02

Liquidation = dual-reserve, dual-user event

LiquidationCall touches collateralAsset + debtAsset + user (victim) + liquidator. Naive handlers update one reserve and miss three of the four mutations. Every money-market indexer eventually has a customer-facing bug rooted in this.

PROPERTY 03

Continuous interest-rate accrual

Every Aave-shape protocol emits per-block index updates via ReserveDataUpdated. The ReserveRateSnapshot time series is the analytical primitive that powers utilization-curve dashboards — a workload no other vertical has.

Versus the other DeFi-shape verticals

VerticalCustomerDefining workloadEntity-model keying
DeFi-DEXVenue (Velodrome, Aerodrome, Uniswap)Volume / fee / TVL reportingPer-pool
Market MakingTrading desk (CoW solver, UniswapX filler)My fill performance vs. competition(maker_address, venue, epoch)
Money MarketLending-protocol team + risk-monitoring toolingLiquidator leaderboards · utilization curves · risk-cohort segmentation(chainId, asset, user)

Pain map · five funnel stages × two root causes

Synthesized from the money-market positioning audit + tech diagnostic. Each cell has a named owning artifact in the repo.

StageTech root causeBusiness root cause
AcquisitionMoney-market protocol engineers don't see themselves in the indexing-infrastructure conversation. The marketing language is DeFi-default; "real-time data" doesn't speak to liquidator leaderboards or utilization curves.Money market is invisible as a target segment in current Envio marketing. No money-market-named landing page, no money-market content track, no Aave / Compound / Spark / Morpho on the visible customer wall.
ActivationDefault templates miss money-market-specific event shapes — per-(asset, user) state, dual-reserve liquidation handling, RAY-precision interest indexes, scaled-balance convention. Weeks of correctness debugging for what should be a 60-minute fork.No money-market-shaped onboarding path. Generic onboarding doesn't acknowledge the vertical's distinct activation path.
MonetizationPostgres melts at utilization-curve scale: hundreds of millions of rows × 200 reserves × 4 chains kills GROUP BY hour AVG(rate) at SLA-grade latency. The customer feels the pain but doesn't connect it to "Dedicated tier.""Production / Dedicated" tier names don't carry money-market-specific value cues. "Risk-Dashboard Tier" does. The tier-up case is currently structured as throughput; for this vertical the natural framing is dashboard latency.
RetentionPostgres-backed ReserveRateSnapshot queries hit O(N²) for utilization curves over long windows. The friction shape Aave's subgraph customers report. Without a known ClickHouse Sink upgrade path, customers shop alternatives.Quarterly health-note cadence doesn't exist for the vertical. Risk-team-led conversations don't happen until something breaks.
ExpansionMulti-chain cross-aggregation in Postgres requires federated queries (slow) or periodic ETL (lossy). Neither produces governance-grade real-time dashboards as protocols expand to 6+ chains.No published case study + no risk-monitoring vendor partnership motion in the customer-visible surface — so expansion ARR per anchor account stalls at the first chain.

Dual interventions · what closes each cell

Every cell gets two owning artifacts — one engineer-side, one operator-side. Synthesised from PLAN.md §4.

§3 CellTech interventionBusiness intervention
Acquisition × TechMoney-market template is the call-to-action on a new vertical landing pageName money market as a first-class vertical in customer-facing copy. Ship a money-market content track.
Acquisition × BusinessVertical landing page anchored to the template + the Liquidation Handler Reference docsCo-marketing motion with Gauntlet, Chaos Labs, Llama Risk — Envio as the indexing partner for their workload
Activation × TechLiquidationCall handler correct from day one (dual-reserve + dual-user) — already shipped, 5/5 vitest, 14,401/14,401 invariants60-min walkthrough Loom + written guide as activation entry point. Routed from landing page directly to the template.
Activation × Business2-month free Production trial structure attached to the template. Conversion trigger: "when daily liquidation volume crosses X notional, here's the upgrade conversation."
Monetization × TechRisk-Dashboard Query Architecture — four canonical analytical patterns + dual-write ClickHouse SinkPosition Dedicated tier explicitly as "the Risk-Dashboard Tier" in money-market-vertical copy
Monetization × BusinessPer-tier feature matrix called out for money-market workload (utilization-curve scale, liquidator leaderboards, multi-asset reserve sprawl)Co-marketing motion with risk-monitoring tools — same as Acquisition × Business but with tier-up pull instead of acquisition push
Retention × TechEffect-API-cached oracle reads + entity-cache-first preload baked into template defaultInternal account-health dashboard surfacing utilization-query latency, leaderboard refresh time, snapshot-table size — surfaces bottlenecks before customer notices
Retention × BusinessQuarterly architectural check-in cadence with money-market anchor accounts
Expansion × Techadd-chain CLI in the template — one config change adds chain #N (already shipped)
Expansion × BusinessCo-engineering offer: Envio sends the runbook as a co-authored play to anchor accounts before their next chain expansion

Most of the tech-side interventions are already shipped. The gap is on the business side — landing page, content, outreach, tier-naming overlay.

04 · Technical deep-dive

The engineer half

Five tabs covering the template, the trickiest event, the risk-dashboard tier-up architecture, multi-chain expansion, and how the indexer is verified against real on-chain state.

Six Aave V3 events on the singleton Pool contract. No factory pattern (Pool is one-per-chain).

EventIndexer effect
SupplyTVL aggregation, per-user supply, lazy Reserve creation
WithdrawTVL aggregation, per-user supply position decrement
BorrowTotal borrow aggregation, per-user debt growth
RepayTotal repay, per-user netDebtPosition reduction
LiquidationCallLiquidation entity preserved; both reserves and both users updated
ReserveDataUpdatedReserveRateSnapshot append + ReserveAggregator current rates updated
3-layer entity model — Reserve, UserReserve, Liquidation + aggregatorson GitHub ↗
rendering diagram…

Layer 1 — Raw

Reserve · UserReserve · Liquidation. Liquidation is append-only, keyed by (chainId, blockNumber, logIndex) so cascading liquidations within one block don't collide.

Layer 2 — Aggregates

ReserveAggregator (per (chainId, asset)) · UserAggregator (per user, cross-reserve). Rollups for current state and leaderboards.

Layer 3 — Snapshots

ReserveRateSnapshot — append-only, keyed by (reserveId, blockNumber). The time-series primitive for utilization-curve dashboards.

Scaled balances, not aToken balances.

Aave V3 stores user balances as scaledBalance × index / RAY where RAY = 1e27. Storing the scaled balance + latest index and computing on-demand is more correct and more efficient than re-running RAY math on every event.

Try it · query the live indexer

Pick a preset, hit Run. The endpoint is the same one the consumer risk dashboard consumes. Throttled client-side; no auth required.

Query playground

Hits indexer.dev.hyperindex.xyz · Aave V3 Polygon

live

ReserveAggregator is the per-(chainId, asset) rollup. Sorted by all-time supplied volume.

Edit freely · throttled 1 req / 1.5s
// Press "Run query" to call the live indexer.
Idle

05 · Business deep-dive

The operator half

Five tabs covering who the customer actually is, how the work hits the market, how Dedicated tier gets renamed in this vertical's customer copy, the 90-day wave sequencing, and the structural year-1 ARR math.

The customer is a lending-protocol team or risk-monitoring tooling vendor that ships dashboards to external users — governance forums, retail lenders, liquidator bots, institutional borrowers. Three concrete archetypes:

Archetype segmentation — conversion velocity vs. per-account ACVon GitHub ↗
rendering diagram…
A

Lending-Protocol Team

Aave, Compound, Spark, Morpho, Hyperdrive, dForce, Sonne, Moonwell, Aurelius, Sturdy. 8–30 engineers. Risk team is separate, owns the analytics workload.

Entry:
Production from day one
Tier-up:
Risk-Dashboard Tier within 6 months
B

Risk-Monitoring Tooling Vendor

Gauntlet, Chaos Labs, Llama Risk, BlockAnalitica. 5–20 engineers + research. Higher data-engineer concentration. Indexing is core dependency.

Entry:
Risk-Dashboard Tier from day one
Tier-up:
No Production trial needed
C

Liquidator-Bot Operator

Anonymous on Aave / Compound / Spark; Flashbots-adjacent searchers. 2–8 engineers. Tertiary segment — opportunistic, not a named-account list.

Entry:
Free → Production within 30 days
Tier-up:
Rarely tiers up
Year-1 expected ACV by archetype (illustrative shape)on GitHub ↗
rendering diagram…

Qualification rubric — yes/no per archetype

Five criteria from a 30-min first call. Yes on 4/5 = clear pursue. Yes on ≤2/5 = polite pass.

CriterionLending-ProtocolRisk-MonitoringLiquidator-Bot
#1 Public-facing dashboardAlways-yesAlways-yesOften-no (private)
#2 Backend on Graph or customDifferentiating (Graph vs custom = different pitch)Always-yesDifferentiating (custom RPC = fast fork)
#3 Expanding to new chain in 6 mo.Differentiating (~3× conversion lift)Less weightedLess weighted
#4 Risk/data team separateDifferentiating (real workload signal)Always-yesN/A (single small team)
#5 Lead engineer reachableRequiredRequiredRequired

Per-archetype conversation shape

ArchetypeFirst-touch channelConversion artifactCycle
Lending-ProtocolEngineer-to-engineer (Twitter/TG) + technical contentTemplate fork → 60-day Production trial4-8 wks
Risk-MonitoringRouted intro via founder / lead data engArchitecture review + Risk-Dashboard Tier proposal6-12 wks
Liquidator-BotSelf-serve via vertical landing pageTemplate fork → Production self-conversion1-3 wks

Anti-profile (polite pass)

  • · Yield aggregators (Yearn V1/V2, Beefy single-strategy) — that's DeFi-DEX vertical.
  • · Vault-shape protocols where the underlying isn't a money-market primitive (Pendle, Origin, Resolv).
  • · Single-asset lending (Liquity, crvUSD-shape) — multi-reserve aggregation patterns don't apply.
  • · RWA money markets (Maple, Centrifuge) — different on-chain shape.
  • · Non-EVM lending (Kamino, MarginFi) — pending Solana support.
Full ICP — qualification rubric, segmentation, anti-profile

06 · Proof points

Everything claimed above is reproducible — here are the receipts

querying…

Live indexer state

16

Reserves indexed

1,089

Liquidations

USDC

Top supplier base

5,234

Top reserve suppliers

Aave V3 · Polygon · queried client-side from indexer.dev.hyperindex.xyz

Replay locally · 4 lines

git clone https://github.com/kaustubh76/Growth_Engineer_at_ENVIO.git
cd Growth_Engineer_at_ENVIO
pnpm -C pow/envio-money-market-template-v1 install
pnpm -C pow/envio-money-market-template-v1 test     # 5 ✓

For a live capture against Polygon, see RUN.md.

Chain provenance

Chain
Polygon (137)
Contract
0x794a6135…814aD (Aave V3 Pool)
Deploy block
25,826,028
Harness recorded
2026-04-30