Analytics dashboard for the Vesu lending protocol on Starknet.
- Positions — All open borrow/multiply positions with sorting and filtering
- Debt & Caps — Total debt and debt caps per lending pair across active pools
- Risk — Debt and positions at risk of liquidation by collateral price drop, with distribution charts
- Top Holders — Top holders of major Starknet assets (USDC, USDT, WBTC, solvBTC, tBTC, LBTC, ETH, wstETH, STRK)
npm install
cp .env.example .env.localEdit .env.local and set your Alchemy RPC URL:
ALCHEMY_RPC_URL=https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_10/YOUR_API_KEY
The top holders page requires a pre-built snapshot of Transfer events. Run the indexer script to generate it:
npx tsx scripts/index-holders.tsThis scans all Transfer events for each token and writes the top 500 holders per token to src/data/holders-snapshot.json. The app then only needs to scan new blocks from the snapshot's last indexed block.
npm run devOpen http://localhost:3000.
Token contract addresses are configured in src/config/tokens.ts.