ROZEV

Docs

ROZEV Architecture

How the application is layered: sources, providers, signal engine, and the terminal UI.

ROZEV is a Next.js App Router application. Server components fetch through a provider layer; client components are limited to interactivity and charts.

src/lib/providers/
  sources/geckoterminal.ts   raw GeckoTerminal client + mappers
  sources/defillama.ts       raw DefiLlama client + mappers
  sources/http.ts            cached fetch with typed failures
  chain-provider.ts          chain TVL, TVL history, DEX distribution
  market-provider.ts         overview, trending, Liquidity Pulse, search
  pool-provider.ts           pool lists, pool detail, candles
  token-provider.ts          token detail, token pools
src/lib/signal.ts            ROZEV Signal formulas
src/app/api/*                thin route handlers for client-side refresh

Result envelope

Every provider returns a Result<T> containing the data and a metadata block with a status of live, estimated, demo or unavailable, the upstream source, and a fetch timestamp. The UI renders a badge from this status next to every panel, so a reader always knows what they are looking at.

Swapping a source

Pages never import upstream clients directly. To add a subgraph, an RPC-backed reader or a different aggregator, implement a module under sources/, map it to the shared types, and wire it into the relevant provider. Route handlers and pages remain unchanged.