Tracking Crypto Prices Overview Foundation skill providing real-time and historical cryptocurrency price data. This skill is the data layer for the crypto plugin ecosystem - 10+ other skills depend on it for price information. Key Capabilities: Real-time prices for 10,000+ cryptocurrencies Historical OHLCV data (1 day to all-time) Multi-currency support (USD, EUR, GBP, 30+ currencies) Intelligent caching to minimize API calls Predefined and custom watchlists Export to CSV/JSON for analysis Dependent Skills: This skill provides price data to: market-movers-scanner, crypto-portfolio-tracker, crypto-tax-calculator, defi-yield-optimizer, liquidity-pool-analyzer, staking-rewards-optimizer, crypto-derivatives-tracker, dex-aggregator-router, options-flow-analyzer, arbitrage-opportunity-finder. Prerequisites Install required dependencies: pip install requests pandas yfinance Optional for advanced features: pip install python-dotenv
For API key management
API Setup (optional, for higher rate limits): Get free API key from https://www.coingecko.com/en/api Add to {baseDir}/config/settings.yaml or set environment variable COINGECKO_API_KEY Instructions Step 1: Quick Price Check Get current price for any cryptocurrency: python { baseDir } /scripts/price_tracker.py --symbol BTC Check multiple assets: python { baseDir } /scripts/price_tracker.py --symbols BTC,ETH,SOL Step 2: Use Watchlists Scan predefined watchlists:
Top 10 by market cap
python { baseDir } /scripts/price_tracker.py --watchlist top10
DeFi tokens
python { baseDir } /scripts/price_tracker.py --watchlist defi
Layer 2 tokens
python { baseDir } /scripts/price_tracker.py --watchlist layer2 Available watchlists: top10 , defi , layer2 , stablecoins , memecoins Step 3: Fetch Historical Data Get OHLCV (Open, High, Low, Close, Volume) history:
Last 30 days
python { baseDir } /scripts/price_tracker.py --symbol BTC --period 30d
Last 90 days with CSV export
python { baseDir } /scripts/price_tracker.py --symbol BTC --period 90d --output csv
Custom date range
python { baseDir } /scripts/price_tracker.py --symbol ETH --start 2024 -01-01 --end 2024 -12-31 Step 4: Configure Settings Edit {baseDir}/config/settings.yaml to customize: cache : spot_ttl : 30
Seconds to cache spot prices
historical_ttl : 3600
Seconds to cache historical data
currency : default : usd
Default fiat currency
watchlists : custom :
Add your own watchlist
- BTC - ETH - SOL Output Price Table (Default) ================================================================================ CRYPTO PRICES Updated: [timestamp] ================================================================================ Symbol Price (USD) 24h Change Volume (24h) Market Cap
BTC $97,234.56 +2.34% $28.5B $1.92T ETH $3,456.78 +1.87% $12.3B $415.2B SOL $142.34 +5.12% $2.1B $61.4B
Total 24h Change: +2.44% (weighted)
JSON Output (--format json) { "prices" : [ { "symbol" : "BTC" , "name" : "Bitcoin" , "price" : 97234.56 , "currency" : "USD" , "change_24h" : 2.34 , "volume_24h" : 28500000000 , "market_cap" : 1920000000000 , "timestamp" : "[timestamp]" , "source" : "coingecko" } ] , "meta" : { "count" : 1 , "currency" : "USD" , "cached" : false } } Historical CSV Export date , open , high , low , close , volume [date] , 95000.00 , 96500.00 , 94200.00 , 96100.00 , 25000000000 [date] , 96100.00 , 97800.00 , 95800.00 , 97500.00 , 27000000000 Configuration Edit {baseDir}/config/settings.yaml :
API Configuration
api : coingecko : api_key : $ { COINGECKO_API_KEY }
Optional, from env
use_pro : false yfinance : enabled : true
Fallback source
Cache Configuration
cache : enabled : true spot_ttl : 30
Spot price TTL (seconds)
historical_ttl : 3600
Historical data TTL (seconds)
directory : ./data
Display Configuration
currency : default : usd supported : - usd - eur - gbp - jpy - cad - aud
Predefined Watchlists
watchlists : top10 : - bitcoin - ethereum - tether - binancecoin - solana - ripple - cardano - avalanche - 2 - dogecoin - polkadot defi : - uniswap - aave - chainlink - maker - compound - governance - token - curve - dao - token - sushi layer2 : - matic - network - arbitrum - optimism - immutable - x Error Handling See {baseDir}/references/errors.md for comprehensive error handling. Common Errors Error Cause Solution Unknown symbol: XYZ Invalid cryptocurrency ticker Check spelling, use --list to search Rate limit exceeded Too many API calls Wait 60s, or use API key for higher limits Network error No internet connection Check connection, cached data will be used Cache stale Cached data older than TTL Data still shown with warning, will refresh Rate Limit Handling The skill automatically: Uses cached data when available Applies exponential backoff on rate limits Falls back to yfinance if CoinGecko fails Shows stale cache data with warning as last resort Examples See {baseDir}/references/examples.md for detailed examples including: Multi-timeframe analysis Portfolio value calculation Price alert setup Integration with other skills Example 1: Quick Price Check python { baseDir } /scripts/price_tracker.py --symbol BTC Output: BTC (Bitcoin) $97,234.56 USD +2.34% (24h) | Vol: $28.5B | MCap: $1.92T Example 2: Watchlist Scan python { baseDir } /scripts/price_tracker.py --watchlist top10 Example 3: Historical Export python { baseDir } /scripts/price_tracker.py --symbol ETH --period 90d --output csv Creates: {baseDir}/data/ETH_90d_[date].csv Integration with Other Skills This skill provides the price data foundation for other crypto skills. Direct Import (recommended for Python skills): from price_tracker import get_current_prices , get_historical_prices
Get prices for portfolio valuation
prices
get_current_prices ( [ "BTC" , "ETH" , "SOL" ] ) CLI Subprocess (for non-Python or isolation): PRICES = $( python { baseDir } /scripts/price_tracker.py --symbols BTC,ETH --format json ) Shared Cache (efficient for batch): Multiple skills can read from {baseDir}/data/cache.json to avoid redundant API calls. Files File Purpose scripts/price_tracker.py Main CLI entry point scripts/api_client.py CoinGecko/yfinance abstraction scripts/cache_manager.py Cache read/write/invalidation scripts/formatters.py Output formatting config/settings.yaml User configuration data/cache.json Price cache (auto-generated) Resources CoinGecko API - Primary data source yfinance - Fallback for historical data PRD.md - Product requirements ARD.md - Architecture documentation