1. What it does

Rosetta continuously ingests Hyperliquid EVM state to track every MetaMorpho vault at block resolution. For each market and vault, it:

  1. Pulls block headers and on‑chain balances.
  2. Recomputes utilization, borrow rate, and supply rate using the protocol’s interest‑rate model.
  3. Accrues borrows forward for “empty” blocks, ensuring every block has an explicit rate even when no events occur.
  4. Aggregates market rates into vault‑level APYs using current allocation weights.
  5. Persists a per‑block time series for direct API consumption and backtesting.

2. Why it’s novel

Event‑driven indexers only react when a transaction fires.

Between events, they implicitly flatten utilization and rates—even though interest accrues every block and rate models reprice continuously. Rosetta’s contribution is a deterministic, block‑based accrual engine:

Feature Event‑based approach Rosetta’s block indexer
Update cadence Only on supply/borrow/repay/withdraw events Every block (~1 s on HyperEVM)
Accrual between events None; assumes flat line Compounds debt forward; adjusts utilization and rates
Historical accuracy Missing drift; breaks backtests Produces block‑level series matching on‑chain economics
Vault discovery Static address lists Dynamic vault detection via log inspection

This design yields three novel capabilities:

  1. Block‑accurate rate curves – Each block captures true borrow and supply dynamics, eliminating the “flat between events” lie.
  2. Continuous vault roll‑ups – Multi‑market vault yields update every block, even when their underlying markets are quiet.
  3. Cost‑aware rotation readiness – Because rates are always current, allocators can compare vaults against transaction costs and switch only when spreads clear those costs.

3. Problem it solves and how

Problem: Active capital allocators—strategies or human operators—need truthful, fresh yield data to decide when to rotate between lending venues. Event‑based feeds deliver stale snapshots and ignore interest accrued in “empty” blocks, leading to mispriced opportunities and costly misallocations.

Solution: Rosetta indexes the chain at block cadence and recomputes rates deterministically:

  1. Capture every block – The block listener requests headers and contract state for all tracked markets.