Skip to main content
Market Intelligence aggregates data from every lending protocol, LST, yield vault, and DEX on Monad into a single unified view. It covers Neverland, Euler V2, Morpho Blue, Curvance, Sherpa, Accountable, Folks Finance, Sumer, Lagoon, TownSquare, Enjoyoors, Nabla, and all four LSTs.

Overview

The market intelligence module provides a single entry point to query ecosystem-wide metrics: total TVL broken down by category, the best current yields across all protocols, DEX liquidity summaries, and cross-DEX arbitrage alerts.

Types

interface YieldOpportunity {
  protocol: string
  asset: string
  apy: number
  tvl: number
  type: 'lending' | 'lst' | 'yield'
}

interface TVLBreakdown {
  total: number
  dex: number
  lending: number
  lst: number
  yield: number
  perps: number
  other: number
}

interface DexSummary {
  totalVolume24h: number
  activePairs: number
  topPair: string
}

interface LendingSummary {
  totalSupplied: number
  totalBorrowed: number
  utilizationRate: number
}

interface MonadMarketOverview {
  totalTVL: number
  dexTVL: number
  lendingTVL: number
  lstTVL: number
  yieldTVL: number
  protocolCount: number
  topYields: YieldOpportunity[]
  dex: DexSummary
  lending: LendingSummary
  timestamp: number
}

interface ArbitrageAlert {
  buyDex: string
  sellDex: string
  buyPrice: number
  sellPrice: number
  spreadPct: number
  profitable: boolean
}

Functions

getMarketOverview

Returns a full ecosystem snapshot: total and per-category TVL, active protocol count, top yield opportunities, and DEX and lending summaries.
getMarketOverview(): Promise<MonadMarketOverview>

getBestYields

Aggregates yield opportunities across all lending protocols, LSTs, and yield vaults. Results are sorted by APY descending.
getBestYields(limit?: number): Promise<YieldOpportunity[]>
ParameterTypeDefaultDescription
limitnumber20Maximum number of results to return

getMonadDeFiTVL

Returns TVL broken down by protocol category. Includes all protocols listed in the overview section.
getMonadDeFiTVL(): Promise<TVLBreakdown>

getArbitrageAlerts

Scans all DEX pairs and returns alerts where the price spread exceeds 0.5%. Each alert includes the recommended buy and sell venues.
getArbitrageAlerts(): Promise<ArbitrageAlert[]>

compareAssetYields

Compares a specific asset’s yield opportunities across all protocols. Useful for deciding where to deploy a single asset.
compareAssetYields(asset: string): Promise<YieldOpportunity[]>
ParameterTypeDescription
assetstringAsset symbol or address (e.g. 'USDC', 'MON')

Usage

import { getMarketOverview, getBestYields, getMonadDeFiTVL } from 'rampart-monad'

const market = await getMarketOverview()
console.log(`Total TVL: $${(market.totalTVL / 1e6).toFixed(1)}M`)
console.log(`Protocols: ${market.protocolCount}`)

const tvl = await getMonadDeFiTVL()
console.log(`Lending TVL: $${(tvl.lending / 1e6).toFixed(1)}M`)
console.log(`LST TVL:     $${(tvl.lst / 1e6).toFixed(1)}M`)

const yields = await getBestYields(5)
yields.forEach(y => console.log(`${y.protocol}/${y.asset}: ${(y.apy * 100).toFixed(2)}%`))

Comparing Yields for a Specific Asset

import { compareAssetYields } from 'rampart-monad'

const opportunities = await compareAssetYields('USDC')

console.log('USDC yield by protocol:')
for (const opp of opportunities) {
  console.log(`  ${opp.protocol}: ${(opp.apy * 100).toFixed(2)}% (TVL: $${(opp.tvl / 1e6).toFixed(1)}M)`)
}

Arbitrage Scanning

import { getArbitrageAlerts } from 'rampart-monad'

const alerts = await getArbitrageAlerts()

for (const alert of alerts) {
  if (alert.profitable) {
    console.log(`Spread ${alert.spreadPct.toFixed(2)}% - buy ${alert.buyDex}, sell ${alert.sellDex}`)
  }
}

Notes

  • TVL figures are USD-denominated and use the cross-oracle verified price from oracles.ts.
  • getBestYields includes LST APRs, lending supply rates, and vault yields in a single sorted list.
  • getMarketOverview makes multiple RPC calls in parallel - typical latency on Monad is under 500 ms given the ~400 ms block time.