|
|
2 viikkoa sitten | |
|---|---|---|
| public | 2 viikkoa sitten | |
| src | 2 viikkoa sitten | |
| .dockerignore | 2 viikkoa sitten | |
| .gitignore | 2 viikkoa sitten | |
| AGENTS.md | 2 viikkoa sitten | |
| Dockerfile | 2 viikkoa sitten | |
| README.md | 2 viikkoa sitten | |
| docker-compose.yml | 2 viikkoa sitten | |
| next.config.ts | 2 viikkoa sitten | |
| package-lock.json | 2 viikkoa sitten | |
| package.json | 2 viikkoa sitten | |
| postcss.config.mjs | 2 viikkoa sitten | |
| tsconfig.json | 2 viikkoa sitten |
Real-time Solana DEX swap flow visualization dashboard. Displays a force-directed network graph showing where volume is moving, what tokens are gaining traction, and swap density across Solana DEXes.
Powered by Helius WebSocket + Enhanced Transactions API.
# Install dependencies
npm install
# Configure environment
cp .env.example .env.local
# Edit .env.local and set your HELIUS_API_KEY
# Start development server
npm run dev
Open http://localhost:3000.
| Variable | Required | Description |
|---|---|---|
HELIUS_API_KEY |
Yes | Helius API key for Solana RPC, WebSocket, and token metadata |
Create a .env.local file:
HELIUS_API_KEY=your_helius_api_key_here
# Build and run
docker compose up -d
# View logs
docker compose logs -f
# Stop
docker compose down
The SQLite database is persisted in a Docker volume (solana-flow-data).
| Technology | Purpose |
|---|---|
| Next.js 16 (App Router) | Framework |
| D3.js + Canvas | Force-directed graph rendering |
| Tailwind CSS v4 | Styling |
| Zustand | Client state |
| better-sqlite3 | Persistent storage (24h) |
| ws | WebSocket client |
Helius WebSocket (logsSubscribe x 9 DEX programs)
-> Batch parse signatures (3x100 every 1.5s)
-> SwapEvent extraction
-> SSE stream to browser + SQLite persistence
-> Zustand store -> D3 force graph (Canvas)
logsSubscribe with DEX program mentions, parsed via Helius Enhanced Transactions APIgetAsset with LRU cacheMIT