Skip to content

Wallet Dashboard

Real-time monitoring dashboard for Arbi's multi-chain cryptocurrency wallets.

Overview

The Wallet Dashboard provides a beautiful, auto-refreshing interface to monitor wallet balances across Base and Solana networks.

Features

πŸ“Š Multi-Chain Monitoring

  • Base Network (EVM Layer 2)
  • Solana Network
  • Real-time balance updates every 30 seconds

🎨 Modern UI

  • Gradient purple theme
  • Responsive design
  • Mobile-friendly
  • Auto-refresh functionality

πŸ”Œ RESTful API

  • /api/balances - Get current balances
  • /health - Health check endpoint

🐳 Fully Containerized

  • Docker image: arbi-wallet-dashboard:latest
  • Health checks built-in
  • Auto-restart on failure

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Browser   β”‚
β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
       β”‚ HTTP
       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Nginx (3100)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Node.js/Express │─────▢│  Base RPC    β”‚
β”‚    Container     β”‚      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚                β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          └───────────────▢│  Solana RPC  β”‚
                           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Wallets Monitored

Network Address
Base 0x75f39d9Bff76d376F3960028d98F324aAbB6c5e6
Solana FeB1jqjCFKyQ2vVTPLgYmZu1yLvBWhsGoudP46fhhF8z

API Reference

Get Balances

curl http://173.255.225.53:3100/api/balances

Response:

{
  "base": {
    "address": "0x75f39d9Bff76d376F3960028d98F324aAbB6c5e6",
    "balance": "0.004471614096735506",
    "network": "Base Mainnet"
  },
  "solana": {
    "address": "FeB1jqjCFKyQ2vVTPLgYmZu1yLvBWhsGoudP46fhhF8z",
    "balance": "0.000000000",
    "network": "Solana Mainnet"
  },
  "timestamp": "2026-02-05T05:02:07.612Z"
}

Health Check

curl http://173.255.225.53:3100/health

Response:

{
  "status": "ok",
  "timestamp": "2026-02-05T05:02:07.612Z"
}

Technology Stack

  • Backend: Node.js + Express
  • Blockchain: ethers.js (Base), @solana/web3.js (Solana)
  • RPC: Public Base RPC, Solana mainnet-beta
  • Frontend: Vanilla HTML/CSS/JavaScript
  • Container: Docker (Node 20 Alpine)
  • Deployment: GitHub Actions CI/CD

Local Development

# Clone repository
git clone https://github.com/Arbi-BFL/wallet-dashboard.git
cd wallet-dashboard

# Install dependencies
npm install

# Start dev server
npm run dev

# Visit http://localhost:3000

Docker Deployment

# Build image
docker build -t arbi-wallet-dashboard .

# Run container
docker run -d \
  --name wallet-dashboard \
  -p 3100:3000 \
  arbi-wallet-dashboard

# Check logs
docker logs -f wallet-dashboard

CI/CD Pipeline

Every push to main triggers:

  1. βœ… Build Docker image
  2. βœ… Run health check tests
  3. βœ… Deploy to production server
  4. βœ… Verify deployment health

See CI/CD documentation for details.

Monitoring

Container Health:

docker ps | grep wallet-dashboard

Application Logs:

docker logs -f arbi-wallet-dashboard

Health Status:

curl http://localhost:3100/health

Future Enhancements

  • Transaction history
  • Price feeds (USD value)
  • Gas price tracking
  • Multi-wallet support
  • Alerts and notifications
  • Historical charts

Troubleshooting

Container unhealthy?

docker logs arbi-wallet-dashboard
docker restart arbi-wallet-dashboard

RPC errors?

# Check RPC connectivity
curl https://mainnet.base.org
curl https://api.mainnet-beta.solana.com

Port conflict?

# Check what's using port 3100
lsof -i :3100