title: Crypto API Monitor
emoji: π
colorFrom: blue
colorTo: purple
sdk: gradio
sdk_version: 4.14.0
app_file: app_gradio.py
pinned: false
license: mit
π Cryptocurrency API Monitor
Production-ready real-time health monitoring for 162+ cryptocurrency API endpoints
A comprehensive monitoring dashboard that tracks the health, uptime, and performance of cryptocurrency APIs including block explorers, market data providers, RPC nodes, news sources, and more.
π Features
Core Capabilities
- Real-Time Monitoring: Async health checks for 162+ API endpoints
- Multi-Tier Classification: Critical (Tier 1), Important (Tier 2), and Others (Tier 3)
- Persistent Storage: SQLite database for historical metrics and incident tracking
- Auto-Refresh: Configurable background scheduler (1-60 minute intervals)
- Category Organization: Block Explorers, Market Data, RPC Nodes, News, Sentiment, etc.
- Export Functionality: Download status reports as CSV
5-Tab Interface
π Tab 1: Real-Time Dashboard
- Live status grid with color-coded health badges (π’π‘π΄)
- Summary cards: Total APIs, Online %, Critical Issues, Avg Response Time
- Advanced filtering: By category, status, or tier
- One-click CSV export
- Response time tracking per provider
π Tab 2: Category View
- Accordion-style category breakdown
- Availability percentage per category
- Visual progress bars
- Average response time per category
- Interactive Plotly charts with dual-axis (availability + response time)
π Tab 3: Health History
- Uptime percentage trends (last 1-168 hours)
- Response time evolution charts
- Incident log with timestamps and severity
- Per-provider detailed history
- Automatic data retention (24-hour rolling window)
π§ Tab 4: Test Endpoint
- Interactive endpoint testing
- Custom endpoint override support
- CORS proxy toggle
- Example queries for each provider
- Formatted JSON responses
- Troubleshooting hints for common errors (403, 429, timeout)
βοΈ Tab 5: Configuration
- Refresh interval slider (1-60 minutes)
- Cache management controls
- Configuration statistics overview
- API key management instructions
- Scheduler status display
Advanced Features
- Async Architecture: Concurrent health checks with semaphore-based rate limiting
- Exponential Backoff: Automatic retry logic for failed checks
- Staggered Requests: 0.1s delay between checks to respect rate limits
- Caching: 1-minute response cache to reduce API load
- Incident Detection: Automatic incident creation for Tier 1 outages
- Alert System: Database-backed alerting for critical issues
- Data Aggregation: Hourly response time rollups
- Auto-Cleanup: 7-day data retention policy
π Quick Start
Local Development
# Clone repository
git clone https://github.com/nimazasinich/crypto-dt-source.git
cd crypto-dt-source
# Install dependencies
pip install -r requirements.txt
# Run the application
python app_gradio.py
Visit http://localhost:7860 to access the dashboard.
Hugging Face Spaces Deployment
Create a new Space on Hugging Face
Link this GitHub repository (Settings > Linked repositories)
Set SDK to Gradio in Space settings
Configure app_file:
app_gradio.pyAdd API keys as Space secrets (Settings > Repository secrets):
ETHERSCAN_KEYBSCSCAN_KEYTRONSCAN_KEYCMC_KEY(CoinMarketCap)CRYPTOCOMPARE_KEYNEWSAPI_KEY
Push to main branch - Auto-deploy triggers!
π¦ Project Structure
crypto-dt-source/
βββ app_gradio.py # Main Gradio application
βββ config.py # Configuration & JSON loader
βββ monitor.py # Async health check engine
βββ database.py # SQLite persistence layer
βββ scheduler.py # Background job scheduler
βββ requirements.txt # Python dependencies
βββ ultimate_crypto_pipeline_2025_NZasinich.json # API registry
βββ all_apis_merged_2025.json # Merged API resources
βββ data/ # SQLite database & exports
β βββ health_metrics.db
βββ README_HF_SPACES.md # This file
π§ Configuration
Environment Variables
All API keys are loaded from environment variables:
ETHERSCAN_KEY=your_key_here
BSCSCAN_KEY=your_key_here
TRONSCAN_KEY=your_key_here
CMC_KEY=your_coinmarketcap_key
CRYPTOCOMPARE_KEY=your_key_here
NEWSAPI_KEY=your_key_here
Scheduler Settings
Default: 5-minute intervals Configurable: 1-60 minutes via UI slider
Database
- Storage: SQLite (
data/health_metrics.db) - Tables: status_log, response_times, incidents, alerts, configuration
- Retention: 7 days (configurable)
- Fallback: In-memory if persistent storage unavailable
π API Resources Monitored
Categories
Block Explorer (25+ APIs)
- Etherscan, BscScan, TronScan, Blockscout, Blockchair, etc.
Market Data (15+ APIs)
- CoinGecko, CoinMarketCap, CryptoCompare, Coinpaprika, etc.
RPC Nodes (10+ providers)
- Infura, Alchemy, Ankr, PublicNode, QuickNode, etc.
News (5+ sources)
- CryptoPanic, CryptoControl, NewsAPI, etc.
Sentiment (5+ APIs)
- Alternative.me Fear & Greed, LunarCrush, Santiment, etc.
Whale Tracking (5+ services)
- Whale Alert, ClankApp, BitQuery, Arkham, etc.
On-Chain Analytics (10+ APIs)
- The Graph, Glassnode, Dune, Covalent, Moralis, etc.
CORS Proxies (5+ proxies)
- AllOrigins, CORS.sh, Corsfix, ThingProxy, etc.
π¨ Visual Design
- Theme: Dark mode with crypto-inspired gradients
- Color Scheme: Purple/Blue primary, semantic status colors
- Status Badges:
- π’ Green: Online (200-299 status)
- π‘ Yellow: Degraded (400-499 status)
- π΄ Red: Offline (timeout or 500+ status)
- βͺ Gray: Unknown (not yet checked)
- Charts: Interactive Plotly with zoom, pan, hover details
- Responsive: Mobile-friendly grid layout
π API Access
Gradio Client (Python)
from gradio_client import Client
client = Client("YOUR_USERNAME/crypto-api-monitor")
result = client.predict(api_name="/status")
print(result)
Direct Embedding
<iframe
src="https://YOUR_USERNAME-crypto-api-monitor.hf.space"
width="100%"
height="800px"
frameborder="0"
></iframe>
REST API (via Gradio)
# Get current status
curl https://YOUR_USERNAME-crypto-api-monitor.hf.space/api/status
# Get category data
curl https://YOUR_USERNAME-crypto-api-monitor.hf.space/api/category/Market%20Data
π Performance
- Concurrent Checks: Up to 10 simultaneous API calls
- Timeout: 10 seconds per endpoint
- Cache TTL: 60 seconds
- Stagger Delay: 0.1 seconds between requests
- Database: Sub-millisecond query performance
- UI Rendering: <1 second for 162 providers
π‘οΈ Error Handling
- Graceful Degradation: UI loads even if APIs fail
- Connection Timeout: 10s timeout per endpoint
- Retry Logic: 3 attempts with exponential backoff
- User Notifications: Toast messages for errors
- Logging: Comprehensive stdout logging for HF Spaces
- Fallback Resources: Minimal hardcoded set if JSON fails
π Security
- API Keys: Stored as HF Spaces secrets, never in code
- Input Validation: Pydantic models for all inputs
- SQL Injection: Parameterized queries only
- Rate Limiting: Respects API provider limits
- No Secrets in Logs: Masked keys in error messages
π€ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
MIT License - See LICENSE file for details
π€ Author
Nima Zasinich (@NZasinich)
- GitHub: @nimazasinich
- Country: Estonia (EE)
- Project: Ultimate Free Crypto Data Pipeline 2025
π Acknowledgments
- Built with Gradio by Hugging Face
- Monitoring 162+ free and public crypto APIs
- Inspired by the crypto developer community's need for reliable data sources
π Links
- Live Demo: Hugging Face Space
- GitHub Repo: crypto-dt-source
- Issues: Report bugs
Built with β€οΈ for the crypto dev community