Insight is a professional oracle data analytics platform that provides comprehensive analysis and comparison of mainstream oracle protocols including Chainlink, Band Protocol, UMA, Pyth, and API3.
- Real-time Price Monitoring - Live price feeds from multiple oracle providers with real-time updates
- Cross-Oracle Price Comparison - Compare prices across different oracles for the same asset
- Cross-Chain Performance Analysis - Analyze oracle performance across multiple blockchain networks
- Market Overview - Track Total Value Secured (TVS) and market metrics
- Price Alerts & Notifications - Configure custom price alerts with multiple trigger conditions
- User Favorites & Snapshots - Save and share price snapshots and favorite configurations
- Data Export - Export data in CSV, JSON, and Excel formats
- Internationalization - Full support for English and Chinese (zh-CN)
- Framework: Next.js 16 (App Router)
- UI Library: React 19
- Language: TypeScript
- Styling: Tailwind CSS 4
- State Management: React Query, SWR, Zustand
- Charts: Recharts
- Animations: Framer Motion
- API: Next.js API Routes
- Database: Supabase (PostgreSQL with Row Level Security)
- Authentication: Supabase Auth with OAuth support
- Real-time: WebSocket, Supabase Realtime
- Pyth Hermes Client (
@pythnetwork/hermes-client) - Custom oracle clients for Chainlink, Band Protocol, UMA, and API3
- Node.js 18.x or higher
- npm or yarn
- Supabase account (for database and authentication)
-
Clone the repository:
git clone <repository-url> cd insight
-
Install dependencies:
npm install
-
Set up environment variables (see Environment Variables section below)
-
Run the development server:
npm run dev
Create a .env.local file in the root directory with the following variables:
| Variable | Description | Required |
|---|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Supabase project URL | Yes |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Supabase anonymous key | Yes |
NEXT_PUBLIC_APP_URL |
Application base URL | No |
NEXT_PUBLIC_WS_URL |
WebSocket server URL | No |
NEXT_PUBLIC_ENABLE_REALTIME |
Enable real-time features (default: true) | No |
NEXT_PUBLIC_ENABLE_ANALYTICS |
Enable Vercel Analytics | No |
NEXT_PUBLIC_ENABLE_PERFORMANCE_MONITORING |
Enable performance monitoring | No |
Example .env.local:
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_WS_URL=ws://localhost:3001
NEXT_PUBLIC_ENABLE_REALTIME=true
NEXT_PUBLIC_ENABLE_ANALYTICS=true
NEXT_PUBLIC_ENABLE_PERFORMANCE_MONITORING=true| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run test |
Run tests |
npm run test:watch |
Run tests in watch mode |
npm run test:coverage |
Run tests with coverage report |
insight/
├── src/
│ ├── app/ # Next.js App Router pages and API routes
│ │ ├── api/ # API endpoints
│ │ │ ├── alerts/ # Price alerts API
│ │ │ ├── auth/ # Authentication callbacks
│ │ │ ├── favorites/ # User favorites API
│ │ │ ├── oracles/ # Oracle data API
│ │ │ └── snapshots/ # User snapshots API
│ │ ├── alerts/ # Alerts page
│ │ ├── api3/ # API3 oracle page
│ │ ├── band-protocol/ # Band Protocol oracle page
│ │ ├── chainlink/ # Chainlink oracle page
│ │ ├── cross-chain/ # Cross-chain analysis page
│ │ ├── cross-oracle/ # Cross-oracle comparison page
│ │ ├── favorites/ # User favorites page
│ │ ├── home-components/ # Homepage components
│ │ ├── login/ # Login page
│ │ ├── market-overview/ # Market overview page
│ │ ├── price-query/ # Price query page
│ │ ├── pyth-network/ # Pyth oracle page
│ │ ├── register/ # Registration page
│ │ ├── settings/ # User settings page
│ │ ├── snapshot/ # Shared snapshots page
│ │ └── uma/ # UMA oracle page
│ ├── components/ # React components
│ │ ├── alerts/ # Alert components
│ │ ├── charts/ # Chart components
│ │ ├── favorites/ # Favorite components
│ │ ├── navigation/ # Navigation components
│ │ ├── oracle/ # Oracle-specific components
│ │ ├── realtime/ # Real-time connection components
│ │ ├── settings/ # Settings components
│ │ └── ui/ # Reusable UI components
│ ├── contexts/ # React contexts
│ │ ├── AuthContext.tsx # Authentication context
│ │ ├── RealtimeContext.tsx # Real-time updates context
│ │ └── TimeRangeContext.tsx# Time range selection context
│ ├── hooks/ # Custom React hooks
│ │ ├── api3/ # API3-specific hooks
│ │ └── chart/ # Chart-related hooks
│ ├── i18n/ # Internationalization
│ │ ├── en.json # English translations
│ │ └── zh-CN.json # Chinese translations
│ ├── lib/ # Core libraries
│ │ ├── alerts/ # Alert detection logic
│ │ ├── analytics/ # Analytics utilities
│ │ ├── api/ # API utilities
│ │ ├── config/ # Configuration files
│ │ ├── constants/ # Application constants
│ │ ├── export/ # Data export utilities
│ │ ├── i18n/ # i18n provider
│ │ ├── monitoring/ # Performance monitoring
│ │ ├── oracles/ # Oracle client implementations
│ │ ├── realtime/ # Real-time communication
│ │ ├── services/ # External services
│ │ ├── snapshots/ # Snapshot management
│ │ ├── supabase/ # Supabase client and utilities
│ │ ├── types/ # TypeScript type definitions
│ │ └── utils/ # Utility functions
│ ├── providers/ # React providers
│ │ ├── ReactQueryProvider.tsx
│ │ └── SWRProvider.tsx
│ └── stores/ # Zustand stores
│ └── crossChainStore.ts
├── supabase/
│ └── migrations/ # Database migrations
│ └── 001_initial_schema.sql
├── public/ # Static assets
├── scripts/ # Utility scripts
├── next.config.ts # Next.js configuration
├── tailwind.config.ts # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration
└── jest.config.js # Jest configuration
- Supported Chains: Ethereum, Arbitrum, Optimism, Polygon, Avalanche, Base, BNB Chain, Fantom
- Features: Node analytics, extensive data feeds, high reliability
- Supported Chains: Cosmos, Osmosis, Juno, Ethereum, Polygon, Avalanche, Fantom, Cronos
- Features: Validator analytics, cross-chain data feeds
- Supported Chains: Ethereum, Arbitrum, Optimism, Polygon, Base
- Features: Optimistic oracle, dispute resolution, validator analytics
- Supported Chains: Solana, Ethereum, Arbitrum, Polygon, Optimism, Avalanche, Base
- Features: Publisher analytics, high-frequency updates, confidence intervals
- Supported Chains: Ethereum, Arbitrum, Polygon, Avalanche, Base, BNB Chain, Optimism
- Features: First-party oracle, quantifiable security, Airnode deployments
The application uses Supabase (PostgreSQL) with the following main tables:
user_profiles- User preferences and settingsprice_records- Historical price data from oraclesuser_snapshots- User-saved price snapshotsuser_favorites- User favorite configurationsprice_alerts- Price alert configurationsalert_events- Alert trigger event history
All tables have Row Level Security (RLS) enabled for data protection.
GET /api/auth/callback- OAuth callback handlerGET /api/auth/profile- Get user profile
GET /api/alerts- List user alertsPOST /api/alerts- Create new alertGET /api/alerts/[id]- Get specific alertPUT /api/alerts/[id]- Update alertDELETE /api/alerts/[id]- Delete alertGET /api/alerts/events- List alert eventsPOST /api/alerts/events/[id]/acknowledge- Acknowledge alert event
GET /api/favorites- List user favoritesPOST /api/favorites- Create favoriteGET /api/favorites/[id]- Get specific favoriteDELETE /api/favorites/[id]- Delete favorite
GET /api/snapshots- List user snapshotsPOST /api/snapshots- Create snapshotGET /api/snapshots/[id]- Get specific snapshotDELETE /api/snapshots/[id]- Delete snapshotGET /api/snapshots/[id]/share- Get shareable snapshot
GET /api/oracles- List all oracle providersGET /api/oracles/[provider]- Get oracle data
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is private and proprietary.
- Chainlink - Decentralized oracle network
- Band Protocol - Cross-chain data oracle
- UMA - Optimistic oracle
- Pyth Network - High-frequency oracle
- API3 - First-party oracle solution