Generates crypto tax reports by processing wallet transactions and fetching historical USD prices.
- Processes CSV transaction files
- Fetches historical prices from CoinGecko
- Automatic rate limiting (no API key needed)
- Persistent price caching
- Generates tax-ready reports
bundle install
Usage
bash
./bin/run path/to/transactions.csv
Reports will be saved in reports/ directory
Input Format
CSV file with columns:
date (YYYY-MM-DD)
transaction_id
currency (symbol)
amount
See samples/input_sample.csv
Customization
Add coin mappings in config/coin_mappings.yml
For better rate limiting, consider:
Adding more coin mappings
Processing smaller batches
Using the cache effectively
10. **.gitignore**
reports/
*.log
.price_cache.yml
.DS_Store
-
Smart Rate Limiting:
- Built-in 1.5 second delay between requests
- Automatic rate limit detection
- Visual progress indicator
-
Persistent Caching:
- 24-hour cache for price data
- Avoids redundant API calls
.price_cache.ymlstores historical prices
-
Resilient Error Handling:
- Automatic retries on network errors
- Detailed error logging
- Graceful failure for unknown coins
-
Efficient Processing:
- Minimal dependencies
- No external services required
- Clear console progress updates
-
Easy Customization:
- Simple YAML configuration
- Add new coins via coin_mappings.yml
- Self-contained implementation
bundle install
./bin/run samples/input_sample.csv
./bin/run path/to/your_transactions.csv The generated report will include USD values for all transactions in the reports/ directory. The system will automatically:
Respect CoinGecko's rate limits
Cache prices for 24 hours
Handle network errors gracefully
Provide clear progress updates
Generate tax-ready CSV output