A full-stack Next.js dashboard for tracking BTC, ETH, SOL, and DOGE across four leading exchanges (Binance, Coinbase, Kraken, KuCoin). Inline TradingView-style charts refresh every second so you can see per-venue micro-trends while prices, spreads, and fee-aware arbitrage math are pulled directly from each venue's public REST API.
- 🔍 Smart asset search – streamlined autocomplete for BTC, ETH, SOL, and DOGE with quick suggestion chips.
- ⚡ Real-time quotes – Next.js route fans out to Binance, Coinbase, Kraken, and KuCoin REST APIs (no ccxt layer) and refreshes every second.
- 📈 TradingView-style charts – lightweight-charts mini panels visualize each venue's micro-trend for the tracked symbol.
- 📊 Arbitrage math – highlights best buy / sell venues, spread in USD and %, and fee drag per exchange.
- 🧮 Filters & sorting – minimum 24h volume filter plus sort by arbitrage %, price, or volume.
- 🚨 Resilient UI – per-exchange error states so you know when a venue is temporarily unavailable.
- Node.js 18+
- npm (or pnpm/yarn/bun)
The current public endpoints do not require API keys. If you add venues that need credentials, extend
app/api/prices/route.tsto read fromprocess.envand set the corresponding headers.
npm install
npm run dev
# open http://localhost:3000The main experience lives in components/crypto-arb-explorer.tsx, while price aggregation happens inside app/api/prices/route.ts.
app/page.tsx– marketing hero + explorer shellcomponents/crypto-arb-explorer.tsx– client component with search, filters, and tableapp/api/prices/route.ts– server route that fetches each exchange REST API directlylib/coins.ts– curated asset metadata used for autocompletelib/exchanges.ts– exchange configuration (quotes + fee assumptions)
- Add authentication and saved watchlists.
- Persist historical spreads for charting.
- Plug into websocket feeds for faster updates.