Skip to content

0xPabloLI/aaveapy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

737 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aave APY

A React dashboard for displaying Aave V3 market data with yield comparisons across multiple chains.

🌐 Live: aaveapy.com

📦 Backend Repo: aave-protocol-analysis

Features

  • Multi-chain Support: View Aave V3 markets across Ethereum, Arbitrum, Optimism, Base, Polygon, Avalanche, and more
  • Yield Comparison: Compare supply/borrow APYs across all supported chains
  • Incentive Tracking: Track additional yield from Merit, Merkl, and Brevis programs
  • Merkl Forecast: Estimate next-run Merkl daily rewards/APR for hypothetical deposit amounts
  • Real-time Data: Fetched from your configured API base (VITE_API_BASE_URL); when unset locally, the app defaults to staging (https://staging-api.aaveapy.com/api). Production is api.aaveapy.com.
  • Mobile Friendly: Responsive design with optimized mobile experience

Tech Stack

  • Framework: React 18 + TypeScript
  • Build Tool: Vite
  • Styling: TailwindCSS + shadcn/ui
  • Data Fetching: TanStack Query

Getting Started

Prerequisites

  • Node.js 18+
  • npm

Installation

# Clone the repository
git clone https://github.com/0xPabloLI/aaveapy.git
cd aaveapy

# Install dependencies
npm install

# Start development server
npm run dev

The app will be available at http://localhost:8080.

Environment Variables

Create your local environment file from the example:

cp .env.example .env.local

Then update values as needed:

# API base URL (optional). If omitted, the app uses staging API (see src/lib/apiBase.ts).
# Point at production, local backend, or Railway — see docs/conventions/api-base-urls.md
VITE_API_BASE_URL=http://localhost:3001/api

Scripts

Command Description
npm run dev Start dev server
npm run build Production build
npm run preview Preview production build
npm run lint Run ESLint
npm run test Run tests
npm run preflight:release Fast release readiness checks

Full checks (includes lint/build/audit):

npm run preflight:release -- --full

Data Freshness Policy (Frontend)

Canonical source: docs/frontend-data-loading-matrix.md.

Docs ownership index: docs/DOCS-INDEX.md.

PR batching and automerge conventions: docs/PR_ANALYSIS.md. Merge hygiene, /merge, and review-thread rules: AGENTS.md (see Commit & Pull Request Guidelines).

Vercel post-deploy smoke test, deploy SHA meta tag, and rollback behavior: docs/conventions/vercel-deployment-smoke-test.md.

Quick rule:

  • Keep one snapshot source per UI state.
  • Prefer endpoint-level TTL and centralized stale-time buckets.

Security

See SECURITY.md for vulnerability reporting and a public-release security checklist.

Merkl Forecast Notes

  • Forecast state is loaded from GET /meta/side-data (forecast.items).
  • Frontend forecast math only changes hypothetical TVL (based on user input amount * token price).
  • Campaign type and regime are rendered from forecast state + local calculation (APR_CAPPED, CATCHING_UP, PLANNED).
  • Canonical formulas and semantics: docs/rate-calculation-formulas.md.

CoinGecko Token Price Fallback

  • Primary source is backend snapshot token prices from GET /markets.
  • CoinGecko fallback runs only when required reserve token prices are missing from snapshot data.
  • Canonical behavior and endpoint details: docs/frontend-data-loading-matrix.md (Forecast Token Price Backup).

License

MIT

Author

0xPabloLI - @0xPabloLI

About

Aave V3 liquidity dashboard with real-time yield simulation — compare supply/borrow rates across multi-chain markets and model hypothetical positions with Merit, Merkl, and Brevis incentives.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors