Tracking Crypto Portfolio
Overview
This skill provides comprehensive cryptocurrency portfolio tracking with:
-
Real-Time Valuations: Current prices from CoinGecko
-
Holdings Breakdown: Quantity, value, and allocation per asset
-
P&L Tracking: Unrealized gains/losses with cost basis
-
Allocation Analysis: Category breakdown and concentration flags
-
Multiple Export Formats: Table, JSON, CSV
Key Capabilities:
-
Track holdings across multiple assets
-
Calculate portfolio total value in USD
-
Identify overweight positions (concentration risk)
-
Export for analysis tools and tax reporting
Prerequisites
Before using this skill, ensure:
-
Python 3.8+ is installed
-
requests library is available: pip install requests
-
Internet connectivity for CoinGecko API access
-
A portfolio JSON file with your holdings
Portfolio File Format
Create a portfolio file (e.g., holdings.json ):
{ "name": "My Portfolio", "holdings": [ {"coin": "BTC", "quantity": 0.5, "cost_basis": 25000}, {"coin": "ETH", "quantity": 10, "cost_basis": 2000}, {"coin": "SOL", "quantity": 100} ] }
Fields:
-
coin : Symbol (BTC, ETH, etc.) - required
-
quantity : Amount held - required
-
cost_basis : Average purchase price per coin (optional, for P&L)
-
acquired : Date acquired (optional, for records)
Instructions
Step 1: Assess User Intent
Determine what portfolio information the user needs:
-
Quick check: Total value and top holdings
-
Holdings list: Full breakdown of all positions
-
Detailed analysis: Allocations, P&L, risk flags
-
Export: JSON or CSV for external tools
Step 2: Execute Portfolio Tracking
Run the tracker with appropriate options:
Quick portfolio summary
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json
Full holdings breakdown
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --holdings
Detailed analysis with P&L and allocations
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --detailed
Export to JSON
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format json --output portfolio_export.json
Export to CSV
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format csv --output portfolio.csv
Step 3: Present Results
Format and explain the portfolio data:
-
Show total portfolio value prominently
-
Highlight 24h and 7d changes
-
Explain allocation percentages
-
Flag any concentration risks
-
For detailed mode, explain P&L calculations
Command-Line Options
Option Description Default
--portfolio
Path to portfolio JSON file Required
--holdings
Show all holdings breakdown false
--detailed
Full analysis with P&L false
--sort
Sort by: value, allocation, name, change value
--format
Output format (table, json, csv) table
--output
Output file path stdout
--threshold
Allocation warning threshold 25%
--verbose
Enable verbose output false
Allocation Thresholds
By default, positions > 25% allocation are flagged:
Allocation Risk Level Action
< 10% Low Normal position
10-25% Medium Monitor closely
25-50% High Consider rebalancing
50% Very High Significant concentration risk
Output
Table Format (Default)
============================================================================== CRYPTO PORTFOLIO TRACKER Updated: 2026-01-14 15:30
PORTFOLIO SUMMARY: My Portfolio
Total Value: $125,450.00 USD 24h Change: +$2,540.50 (+2.07%) 7d Change: +$8,125.00 (+6.92%) Holdings: 8 assets
TOP HOLDINGS
Coin Quantity Price Value Alloc 24h BTC 0.500 $95,000.00 $47,500.00 37.9% +2.5% ETH 10.000 $3,200.00 $32,000.00 25.5% +1.8% SOL 100.000 $180.00 $18,000.00 14.4% +4.2%
⚠ CONCENTRATION WARNING: BTC (37.9%) exceeds 25% threshold
==============================================================================
JSON Format
{ "portfolio_name": "My Portfolio", "total_value_usd": 125450.00, "change_24h": {"amount": 2540.50, "percent": 2.07}, "holdings": [ { "coin": "BTC", "quantity": 0.5, "price_usd": 95000, "value_usd": 47500, "allocation_pct": 37.9, "change_24h_pct": 2.5 } ], "meta": { "timestamp": "2026-01-14T15:30:00Z", "holdings_count": 8 } }
Error Handling
See {baseDir}/references/errors.md for comprehensive error handling.
Error Cause Solution
Portfolio file not found Invalid path Check file path exists
Invalid JSON Malformed file Validate JSON syntax
Coin not found Unknown symbol Check symbol spelling, use standard symbols
API rate limited Too many requests Wait and retry, use caching
Examples
See {baseDir}/references/examples.md for detailed examples.
Quick Examples
Basic portfolio check
python {baseDir}/scripts/portfolio_tracker.py --portfolio ~/crypto/holdings.json
Show all holdings sorted by allocation
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --holdings --sort allocation
Detailed analysis with 15% threshold
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --detailed --threshold 15
Export for tax software
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format csv --output tax_export.csv
JSON export for trading bot
python {baseDir}/scripts/portfolio_tracker.py --portfolio holdings.json --format json --output portfolio_data.json
Resources
-
CoinGecko API: https://www.coingecko.com/en/api - Free crypto market data
-
Portfolio Schema: See PRD.md for complete portfolio file format
-
Configuration: See {baseDir}/config/settings.yaml for options
-
See {baseDir}/references/examples.md for integration examples