🎯 The Prophecy System
How Prophecies Work
Market Ingestion: LUMI fetches 100+ active prediction markets
Normalization: Raw data is processed into a consistent format
AI Analysis: Each market is sent to GPT-4o-mini for probability assessment
Divergence Calculation: LUMI compares its prediction against crowd odds
Display: Results shown with visual divergence indicators
Divergence Calculation
// src/services/oracle.js
export function calculateDivergence(crowdProbability, oracleProbability) {
const crowd = parseFloat(crowdProbability);
const oracle = parseFloat(oracleProbability);
const diff = oracle - crowd;
const absDiff = Math.abs(diff);
return {
value: diff,
absolute: absDiff,
percentage: (absDiff * 100).toFixed(1),
direction: diff > 0 ? 'bullish' : diff < 0 ? 'bearish' : 'aligned',
significance: absDiff > 0.15 ? 'high' : absDiff > 0.08 ? 'medium' : 'low',
label: diff > 0 ? `+${(absDiff * 100).toFixed(1)}%` : `-${(absDiff * 100).toFixed(1)}%`
};
}Prophecy Card Display
💬 Oracle Chat (Consult)
Users can directly consult LUMI about any topic:
🔄 Caching Strategy
LUMI implements multi-layer caching for performance:
Cache Layer
TTL
Purpose
Browser
no-cache
Always fresh requests
Vercel Edge
60s
Reduce API calls
Client Memory
30s
Market data
Prediction Cache
10 min
LUMI predictions
🎨 Visual Effects
Fluid Cursor Trail
WebGL-based fluid simulation follows cursor movement:
Floating Particles
Canvas-based ambient particles:
Last updated
