Starting the Dashboard
The dashboard is located in thedashboard/ directory:
The dashboard requires the Karen API server to be running. Start it with:
Configuration
Configure dashboard API connection via environment variables:dashboard/.env.local
Dashboard Pages
The dashboard includes five main pages:Overview (Home)
Real-time system health and activity feed. Location:dashboard/app/page.tsx:44
Features:
- System Stats: Total agents, active wallets, recent transactions, network status
- Recent Activity: Live transaction feed with status indicators
- Wallet Overview: Quick view of all managed wallets
- Auto-refresh: Updates every 5 seconds
Agents
Manage and monitor all autonomous agents. Location:dashboard/app/agents/page.tsx:33
Features:
- Agent List: View all agents with status, LLM provider, and strategy
- Start/Stop Controls: Start and stop agents directly from the UI
- Live Chat: Interactive chat interface to communicate with running agents
- Auto-refresh: Updates every 5 seconds
- ▶ Start: Start a stopped agent
- ⏹ Stop: Stop a running agent
- 💬 Chat: Open chat interface to query the agent
dashboard/app/agents/page.tsx:176):
The chat panel allows you to send messages to agents and receive responses:
Wallets
View and manage all Solana wallets. Location:dashboard/app/wallets/page.tsx:38
Features:
- Wallet Cards: Grid view of all wallets with balances
- SOL Balance: Real-time SOL balance for each wallet
- Token Holdings: List of all SPL token balances
- Address Copy: Click to copy wallet address to clipboard
- Explorer Links: Direct links to Solana Explorer
- Auto-refresh: Updates every 10 seconds
Transactions
Detailed transaction history with guardrail information. Location:dashboard/app/transactions/page.tsx:33
Features:
- Transaction Table: Comprehensive list of all transactions
- Type Icons: Visual indicators for swap, transfer, airdrop, etc.
- Status Badges: Color-coded status (confirmed, pending, failed, blocked)
- Guardrails Applied: Shows which security checks were applied
- Transaction Details: Amount, token, recipient address
- Explorer Links: Click signature to view on Solana Explorer
- Error Messages: Displays failure reasons for blocked/failed transactions
- Auto-refresh: Updates every 3 seconds
- 🔄 swap: Jupiter token swap
- ➡️ transfer: SOL transfer
- 🪂 airdrop: Devnet airdrop
- 🪙 token_transfer: SPL token transfer
- 📦 other: Custom transaction types
dashboard/app/transactions/page.tsx:132):
Each transaction shows which guardrails were applied:
max_per_tx: Per-transaction limit checkrate_limit: Rate limiting checkdaily_limit: Daily spending limit checkprogram_allowlist: Program allowlist checkblocked_address: Blocked address check
API Keys
Manage API keys for external agent integration. Location:dashboard/app/api-keys/page.tsx
Features:
- Key Management: Create, view, and revoke API keys
- Permission Control: Set specific permissions per key
- Rate Limits: Configure per-key rate limits
- Spending Limits: Set SOL spending limits per key
- Usage Tracking: View last used timestamp
Real-Time Updates
The dashboard uses polling to keep data fresh:| Page | Refresh Interval | API Endpoints |
|---|---|---|
| Overview | 5 seconds | /api/v1/health, /api/v1/transactions, /api/v1/wallets |
| Agents | 5 seconds | /api/v1/agents |
| Wallets | 10 seconds | /api/v1/wallets, /api/v1/wallets/{id}/balance |
| Transactions | 3 seconds | /api/v1/transactions?limit=50 |
Status Indicators
The dashboard uses color-coded badges for quick status recognition:Agent Status
- running (green): Agent is actively running decision loops
- stopped (gray): Agent is stopped
- idle (blue): Agent is idle
- error (red): Agent encountered an error
Transaction Status
- confirmed (green): Transaction successfully confirmed on-chain
- pending (yellow): Transaction submitted, waiting for confirmation
- failed (red): Transaction failed to execute
- blocked (red): Transaction blocked by guardrails
Production Deployment
Build for Production
Environment Variables
.env.production
Docker Deployment
Create aDockerfile in the dashboard directory:
Dockerfile
Reverse Proxy (Nginx)
Example Nginx configuration:Troubleshooting
Dashboard Won’t Connect
Data Not Updating
The dashboard usesfetch with cache: 'no-store' to ensure fresh data. If data appears stale:
- Check browser console for API errors
- Verify the API server is responding with current data
- Clear browser cache and reload
Chat Not Working
The agent chat feature requires:- Agent must be in
runningstatus - API endpoint
/api/v1/agents/{id}/chatmust be implemented - Agent must be actively listening for chat messages
Custom Styling
The dashboard uses CSS variables for theming (dashboard/app/globals.css):
Next Steps
- Create Custom Skills to extend agent capabilities
- Configure Guardrails for production safety
- Integrate external agents via API