Personal multi-chain portfolio tracker built Cardano-first.
Existing multi-chain wallets treat Cardano as an afterthought β basic balance tracking with no stake pool info, broken native assets, and zero governance integration. This project flips that: deep Cardano ecosystem support first, then proper multi-chain coverage.
Cardano (Primary):
- Stake pool tracking, rewards, governance
- Native assets with metadata and decimals
- DeFi protocol integration (Minswap, SundaeSwap, etc.)
- NFT collections with floor prices
- Stake key wallet grouping
Other Chains: Bitcoin, Ethereum, Solana, Polygon, Base
Tools: Privacy-focused (self-hosted), transaction analytics, custom tokens, portfolio snapshots
Personal side project built with AI assistance. Goal: Create a robust tracker that doesn't compromise on Cardano while supporting major chains. Community contributions welcome.
Current Build: v1.5.0 (BUILD 1770563676)
ABCT is designed for personal, self-hosted use on trusted local networks. NOTE: **THIS WILL HAVE PERIODIC BUGS AS I'M WORKING THROUGH THIS TO LEARN MORE ABOUT CONNECTING TO BLOCKCHAIN INFRASTRUCTURES VIA API, WHAT WORKS WEL, AND WHAT DOESN'T. **
This is a hobby project for tracking your personal cryptocurrency portfolio. It is:
- β Perfect for: Home networks, personal NAS devices, local development
- β Designed for: Single-user or family use on trusted networks
- β NOT designed for: Public internet hosting or multi-tenant use
- β NOT recommended: Exposing directly to the internet without VPN
- Default configuration assumes localhost/trusted network access
- Authentication is optional (can be disabled for local use)
- No built-in HTTPS/SSL (can be added via reverse proxy if needed)
- API keys stored in environment variables
- Read-only access to blockchain data (cannot move funds)
If you need to access ABCT remotely:
- β Use a VPN (Tailscale, WireGuard, etc.)
- β Use a reverse proxy with authentication (nginx + Basic Auth)
- β Use SSH tunnel
- β Don't expose port directly to internet
For more details, see SECURITY.md
For a detailed overview of the system architecture, authentication flow, and database structure, see ARCHITECTURE.md.
- Multi-Blockchain Support: Track wallets on Cardano, Bitcoin, Ethereum, Solana, Polygon, Base, and Algorand (7 chains)
- Multi-Exchange Integration: Connect to 7 major exchanges (Coinbase, Binance, Binance.US, OKX, Bitget, Gate.io, KuCoin)
- DeFi Monitoring: View Cardano staking positions with APY and rewards
- NFT Collection: Browse your NFTs with floor price valuations
- Transaction History: Complete transaction tracking across all blockchains with analytics
- Portfolio History: Interactive charts showing value over time (7d, 4w, 3m)
- Privacy Mode: Hide sensitive financial data with one click
- Self-Hosted: Your data stays on your machine
- Docker Ready: Single container deployment
- Optional HTTPS: SSL/TLS encryption support
- Secure Logging: Audit trails with sensitive data redaction
- V2 Ingestion Engine: Complete rebuild of the data pipeline architecture
- 6-stage pipeline: Expand β Index β Hydrate β Normalize β Enrich β Positions
- Provider-agnostic work units β if one API rate-limits, work reassigns to another
- 14 registered data providers across all chains
- Circuit breaker pattern with automatic recovery (CLOSED β OPEN β HALF_OPEN)
- Token bucket rate limiting per provider
- Bulkhead concurrency control via asyncio.Semaphore
- Idempotent event dedup (safe to re-run backfills)
- Multi-Chain Coverage: Full pipeline support for Cardano, Bitcoin, Ethereum, Solana, Polygon, Base
- Chain-specific expanders, indexers, hydrators, and normalizers
- CoinStats integration for non-Cardano chains (Bitcoin, Ethereum, Solana, Polygon, Base)
- CoinStats Cardano exclusion enforced at registry, indexer, and hydrator levels
- Provider Registry: Priority-based scoring with health/quota/latency factors
- Automatic failover when providers go down
- Per-provider health tracking persisted to database
- Circuit breakers with 5-failure threshold and 5-minute recovery
- Backfill Orchestration: Plan, execute, and monitor backfills via API
POST /engine/backfillβ start a new backfill jobGET /engine/backfill/{id}/statusβ real-time progress- Background execution with domain pipeline ordering
- 8 New Database Tables:
engine_backfills,engine_account_subjects,engine_tx_index,engine_tx_raw,engine_events,engine_work_units,engine_provider_health,engine_price_history - 11 New API Endpoints: Backfill management, provider health, event queries, portfolio snapshots
- Balance History Improvements: Anchor to current on-chain balance, nginx proxy passthrough
- Performance: Fixed 7s page load delay from NFT image config, improved Assets UX
- π .env Import/Export Fix: Complete API key migration workflow
- Fixed .env export crash (missing
Pathimport) - New .env import: upload a
.envfile to import API keys directly into the database - Supports all 17 API services including exchange key+secret+passphrase grouping
- File upload UI with drag-and-drop on the Backup & Restore page
- Fixed .env export crash (missing
- π Portfolio History Improvements: Better snapshot frequency and backfill
- Snapshot interval reduced from 4 hours to 2 hours for more granular history
- Auto-generate 30 days of historical data for new users on startup
- "Generate 30-Day History" button on dashboard when no data exists
- Added Solana (SOL) to historical price tracking
- π Algorand Support: Full blockchain integration for Algorand network
- Pera Wallet API integration (primary source)
- Tatum API fallback support
- Native ALGO tracking and ASA (Algorand Standard Assets)
- ARC-3 and ARC-69 NFT support
- Transaction history integration
- π Transaction History System: Complete multi-chain transaction tracking
- Unified transaction view across all 7 blockchains
- Transaction analytics with visual charts
- 1,500+ demo transactions for testing
- Chain filtering and search capabilities
- πΌοΈ Enhanced Demo Mode: Massive expansion of sample data
- 91 tokens across all blockchains
- 76 NFTs across 7 collections
- 1,500 transactions over 1 year of history
- More realistic portfolio simulation
- π¨ Complete Theme Redesign: Reimagined theme system with enhanced visual polish
- Renamed "Default" theme to "Dark Mode" for clarity
- New Light Theme: Clean, modern white theme with refined UI elements
- Removed "Green Terminal" theme
- 5 professionally designed themes: Dark Mode, Light, Cypherpunk 1, Ocean Depths, Sunset Horizon
- π Light Theme Polish: Comprehensive styling for modern aesthetics
- Rounded corners throughout (10-24px range for visual hierarchy)
- Layered shadow effects for depth and elevation
- Proper contrast and readability
- White backgrounds with subtle gray accents (#e5e7eb borders)
- Professional button and input styling
- β¨ Dark Mode Enhancements: Improved visibility and polish
- Glowing green borders on headers and sections (rgba(0, 210, 106, 0.4))
- Enhanced shadow effects for better depth perception
- Improved contrast for better readability
- Consistent rounded corners matching light theme
- π― UI Refinements: Better spacing and visual hierarchy
- Header and section headers now use rounded, padded containers
- Improved text indentation (16-24px padding)
- Portfolio card with enhanced shadows and borders
- Chart containers with proper background styling per theme
- Consistent waffle menu integration across all pages
- π Theme Selector Relocation: Moved from header to waffle menu dropdown
- More intuitive navigation structure
- Cleaner header design
- Theme selection with all navigation in one place
- π§ Cache Busting: Build version system for immediate CSS/JS updates
- Version 1770166262
- No more browser cache issues after updates
- π Seven Exchange Integrations: Full API support for Binance, OKX, KuCoin, Bitget, Gate.io + existing Coinbase
- Automatic portfolio aggregation across all exchanges
- Read-only API keys for maximum security
- 5-minute smart caching to respect rate limits
- Individual exchange status monitoring
- Easy environment variable configuration
- π¨ Visual Enhancements: LogoKit integration for blockchain and token logos
- Blockchain logos on all summary cards
- Token logos in wallet and exchange asset lists
- Exchange-specific branding throughout UI
- Improved pie chart colors for cypherpunk theme
- ποΈ Manage Wallets Interface: Redesigned asset management
- Three-tab interface: Self-Custody | Exchanges | Manual Tokens
- Exchange configuration status dashboard
- Setup guide with direct links to API management
- Better organization of different asset types
- π Comprehensive Documentation: Complete exchange integration guide
- Step-by-step setup for each exchange
- Security best practices and troubleshooting
- API rate limit documentation
- π Complete Portfolio History: 90-day historical snapshots with all components
- Backfill script generates realistic historical price variations
- Includes native coins, tracked tokens, NFTs, and exchange balances
- Daily snapshots with auto-refresh every 4 hours
- Chart now shows complete portfolio value (not just native coins)
- All components properly tracked: wallets + tokens + NFTs + exchanges
- π Blockchain Asset Breakdown: Interactive drill-down charts
- Click any blockchain card to see asset composition
- Doughnut charts showing native coin + tokens + NFTs
- Sortable legend with percentages and USD values
- Works across all 6 supported blockchains
- π The Graph API Integration: Ethereum-based token pricing
- Uniswap V2/V3 subgraph integration for accurate pricing
- ETH-denominated prices for Ethereum, Polygon, Base tokens
- 100K queries/day with automatic usage tracking
- 5-minute price caching for performance
- π Multi-Chain Native Pricing: Universal token pricing system
- Cardano: ADA-denominated via TapTools
- Ethereum/Base/Polygon: ETH-denominated via The Graph
- Solana: SOL-equivalent calculated from USD
- Automatic USD conversion with native token display
- πΌοΈ Enhanced NFT Wall: Major performance improvements
- Fixed NFT collection expansion (DOMPurify compatibility)
- Prominent gradient cache button with live status
- Real-time background scheduler indicator
- Batch progress showing: cached/failed/skipped counts
- "Remaining" stat showing uncached images
- Auto-disables when all images cached
- π Bug Fixes:
- Fixed NFT expansion on dashboard (event delegation)
- Improved cache progress visibility and clarity
- Better batch caching status messages
- Enhanced background work visibility
- π₯ Multi-User Support: Full multi-user architecture with user isolation
- Separate portfolios for different users
- Session-based authentication with secure tokens
- Per-user wallet, NFT, and DeFi data isolation
- Password change functionality built-in
- π¨ Demo Mode: Try ABCT without connecting wallets
- Pre-loaded with extensive realistic demo data
- 91 tokens across all 7 supported blockchains
- 76 NFTs across 7 collections (Cardano, Ethereum, Solana, Polygon, Base, Algorand)
- 1,500 transactions spanning 1 year of history
- Demo DeFi positions and exchange balances
- Multi-chain NFT wall with blockchain filtering
- Login with username:
demo/ password:demo
- πΌοΈ Multi-Chain NFT Wall: Enhanced NFT visualization
- Support for Cardano, Ethereum, Solana NFTs
- Filter by blockchain with live chain tabs
- Colorful SVG placeholders for demo mode
- Privacy mode to blur sensitive data
- π Bug Fixes:
- Fixed Cardano stake key collapse/expand functionality
- Fixed demo NFT wall authentication
- Improved multi-user database schema
- Enhanced session token handling
- π Complete Backup System: Export/import all your configuration data
- Migration ready for moving to new servers
- Selective export options
- Import modes: Merge (safe) or Replace (full restore)
- Security warnings for sensitive data in backups
- β° NFT Background Scheduler: Automatic 24/7 NFT floor price updates
- Smart rate limiting (95 calls/day)
- State persistence and priority queue
- Single Container: NFT price service integrated into main app
- Background Updates: Automatic 24/7 NFT floor price collection
- Smart Rate Limiting: Respects TapTools 95 calls/day limit
- State Persistence: Resumes exactly where it left off after restart
- UI Controls: Enable/disable from Services page
See CHANGELOG.md for complete version history.
ABCT includes a login page to protect your portfolio data. Use these credentials on first access:
-
Admin Account:
- Username:
admin - Password:
satoshi - Full access to add wallets and configure settings
- Username:
-
Demo Account (New in v0.12.0):
- Username:
demo - Password:
demo - Pre-loaded with extensive sample data:
- 91 tokens across all 7 blockchains
- 76 NFTs across 7 collections
- 1,500 transactions over 1 year
- DeFi positions and exchange balances
- Try ABCT without connecting your wallets!
- Username:
Forgot your password? See Password Reset Guide for reset instructions.
ABCT works on any Docker-capable system including Linux servers, NAS devices (TrueNAS, Synology, Unraid), and desktop environments.
Note: ABCT is designed for local network use. See security considerations above before exposing to external networks.
# Clone the repository
git clone https://github.com/Tarrant64/abct.git
cd abct
# Create environment file
cp .env.example .env
nano .env # Add your API keys
# Build and run with Docker Compose
cd abct-docker
docker-compose up -d
# Access at http://localhost:8080For detailed platform-specific instructions (TrueNAS, Synology, Portainer, etc.), see Docker Deployment Guide.
Security Note: The default Docker configuration binds to all network interfaces. For added security on trusted networks, consider restricting port binding to localhost only (
127.0.0.1:8080:80) or implementing authentication and HTTPS. See SECURITY.md for guidance.
Note for Unraid users: A convenience deployment script is available at
abct-docker/update-unraid.shfor automated deployment and updates on Unraid servers.
# Clone the repository
git clone https://github.com/Tarrant64/abct.git
cd abct
# Copy and configure environment
cp .env.example .env
nano .env # Add your Blockfrost API key at minimum
# Run the application
./run.sh
# Open in browser
open http://127.0.0.1:8000The run.sh script will:
- Create a Python virtual environment
- Install dependencies
- Start the FastAPI backend
- Display the server URL
The dashboard provides a comprehensive view of your crypto portfolio:
- Portfolio Summary: Total value across all blockchains
- Value History Chart: Track portfolio performance over 7 days, 4 weeks, or 3 months
- Staking Positions: View delegated ADA, earned rewards, and pool APY
- Exchange Holdings: See balances from connected exchanges
- NFT Gallery: Browse collections with floor price estimates
- Python 3.9 or higher
- 512MB RAM minimum
- API keys (see below)
| Service | Required | Purpose | Sign Up |
|---|---|---|---|
| Blockfrost | Yes | Cardano blockchain data | blockfrost.io |
| CExplorer | Recommended | Staking/rewards data | cexplorer.io/api |
| TapTools | Optional | NFT floor prices | taptools.io |
| Etherscan | Optional | Ethereum support | etherscan.io |
| Coinbase | Optional | Exchange balances | portal.cdp.coinbase.com |
| Binance | Optional | Exchange balances | binance.com/en/my/settings/api-management |
| OKX | Optional | Exchange balances | okx.com/account/my-api |
ABCT/
βββ backend/ # Python FastAPI backend
β βββ main.py # Application entry point
β βββ config.py # Configuration management
β βββ database.py # SQLite database layer
β βββ auth_utils.py # Session auth utilities
β βββ routers/ # API endpoint handlers (26 routers)
β β βββ auth.py # Authentication (login/logout/password)
β β βββ portfolio.py # Portfolio summary & history
β β βββ wallets.py # Wallet CRUD operations
β β βββ prices.py # Cryptocurrency prices
β β βββ defi.py # Staking positions
β β βββ exchanges.py # Exchange balances
β β βββ nfts.py # NFT collection
β β βββ nft_scheduler.py # NFT scheduler API
β β βββ transactions.py # Transaction history & analytics
β β βββ balance_history.py # Balance history charts
β β βββ engine.py # V2 Ingestion Engine API (v1.5.0+)
β β βββ backup.py # Backup & restore
β β βββ cache.py # Cache management
β β βββ custom_tokens.py # Custom token management
β β βββ dashboard.py # Dashboard data
β β βββ demo.py # Demo mode management
β β βββ spam.py # Spam token filtering
β β βββ nmkr.py # NMKR NFT minting
β β βββ cloudflare.py # Cloudflare tunnel management
β β βββ mobile.py # Mobile API endpoints
β β βββ system.py # System info & health
β β βββ settings.py # Application settings
β β βββ security.py # Security settings
β β βββ logs.py # Log viewer
β βββ engine/ # V2 Ingestion Engine (v1.5.0+)
β β βββ models.py # Pydantic models (ChainId, WorkUnit, CanonicalEvent)
β β βββ db.py # 8 engine_* tables with CRUD
β β βββ orchestrator.py # Backfill orchestration & pipeline coordination
β β βββ expansion/ # Stage A: wallet β account subjects
β β β βββ cardano_expander.py # Stake key β payment addresses
β β β βββ bitcoin_expander.py # Address passthrough
β β β βββ evm_expander.py # Normalize to lowercase
β β β βββ solana_expander.py # SPL token account enumeration
β β βββ indexing/ # Stage B: collect tx IDs (cheap)
β β β βββ cardano_indexer.py # Blockfrost pagination
β β β βββ bitcoin_indexer.py # Blockstream pagination
β β β βββ evm_indexer.py # Etherscan txlist+internal+token
β β β βββ solana_indexer.py # Helius getSignatures
β β β βββ coinstats_indexer.py # CoinStats (NOT Cardano)
β β βββ hydration/ # Stage C: full tx detail (expensive)
β β β βββ cardano_hydrator.py # Blockfrost UTXOs
β β β βββ bitcoin_hydrator.py # Blockstream /tx/
β β β βββ evm_hydrator.py # Alchemy RPC
β β β βββ solana_hydrator.py # Helius enhanced tx
β β β βββ coinstats_hydrator.py # CoinStats (NOT Cardano)
β β βββ normalization/ # Stage D: raw tx β canonical events
β β β βββ cardano_normalizer.py # UTxO in/out β events
β β β βββ bitcoin_normalizer.py # vin/vout β events
β β β βββ evm_normalizer.py # logs β events
β β β βββ solana_normalizer.py # instructions β events
β β βββ enrichment/ # Stage E: prices & metadata
β β β βββ price_enricher.py # Historical price lookup
β β β βββ token_metadata_enricher.py # Token name/decimals
β β β βββ nft_metadata_enricher.py # NFT metadata (stub)
β β βββ positions/ # Stage F: DeFi inference (stubs)
β β β βββ cardano_defi.py # Cardano DeFi positions
β β β βββ evm_defi.py # EVM DeFi positions
β β βββ providers/ # Provider registry & scoring
β β β βββ provider.py # Provider dataclass
β β β βββ registry.py # 14 providers with health-aware selection
β β βββ scheduler/ # Rate limiting & circuit breaking
β β βββ scheduler.py # Work unit scheduler
β β βββ token_bucket.py # Per-provider rate limiter
β β βββ circuit_breaker.py # Health tracking & auto-pause
β βββ services/ # Business logic layer (50+ services)
β β βββ cardano.py # Cardano blockchain
β β βββ bitcoin.py # Bitcoin blockchain
β β βββ ethereum.py # Ethereum blockchain
β β βββ solana.py # Solana blockchain
β β βββ polygon.py # Polygon blockchain
β β βββ base.py # Base blockchain
β β βββ algorand.py # Algorand blockchain
β β βββ etherscan.py # Etherscan multi-chain API
β β βββ pricing.py # Price aggregation (5-source fallback)
β β βββ defi.py # DeFi/staking service
β β βββ balance_history.py # V1 balance history
β β βββ transaction_history.py # Multi-chain transactions
β β βββ http_client.py # Shared HTTP client pool (30+ named pools)
β β βββ api_key_manager.py # Dynamic API key management
β β βββ coinbase.py # Coinbase exchange
β β βββ binance_service.py # Binance.com exchange
β β βββ binance_us_service.py # Binance.US exchange
β β βββ okx_service.py # OKX exchange
β β βββ bitget_service.py # Bitget exchange
β β βββ gate_service.py # Gate.io exchange
β β βββ kucoin_service.py # KuCoin exchange
β β βββ nft.py # NFT service
β β βββ nft_scheduler.py # NFT background scheduler
β β βββ nft_price_client.py # NFT price aggregation
β β βββ nft_image_service.py # NFT image caching
β β βββ ethereum_nft.py # Ethereum NFT service
β β βββ solana_nft.py # Solana NFT service
β β βββ algorand_nft.py # Algorand NFT service
β β βββ snapshot.py # Portfolio snapshots
β β βββ logostream.py # Token logo API
β β βββ logging_service.py # Structured logging
β β βββ taptools.py # TapTools Cardano data
β β βββ moralis.py # Moralis NFT service
β β βββ nmkr.py # NMKR minting service
β β βββ nmkr_service.py # NMKR business logic
β β βββ nftcdn.py # NFT CDN service
β β βββ graph.py # The Graph API (Uniswap pricing)
β β βββ demo_*.py # Demo mode services (wallets, NFTs, transactions, etc.)
β βββ middleware/ # Security middleware
β βββ demo_mode.py # Demo mode detection
β βββ size_limit.py # Request size limiting
βββ frontend/ # HTML/CSS/JS frontend
β βββ index.html # Main dashboard
β βββ wallets.html # Wallet management
β βββ assets.html # Asset breakdown & details
β βββ transactions.html # Transaction history & analytics
β βββ nft-wall.html # NFT gallery
β βββ nfts.html # NFT collection management
β βββ settings.html # Consolidated settings (APIs, exchanges, security)
β βββ system.html # System management (logs, cache, services, backup)
β βββ login.html # Login page
β βββ api-help.html # API setup guide
β βββ dashv2.html # Dashboard V2 (experimental)
β βββ static/demo-nfts/ # Demo NFT images
β βββ css/styles.css # Styling (5 themes, 7000+ lines)
β βββ js/
β βββ app.js # Main application logic
β βββ session-auth.js # Authentication utilities
βββ abct-docker/ # Docker deployment
β βββ Dockerfile # Container definition
β βββ nginx.conf # Reverse proxy config
β βββ supervisord.conf # Process manager
β βββ update-unraid.sh # Deployment script
βββ data/ # SQLite databases (auto-created)
β βββ portfolio.db # Main database (includes engine_* tables)
β βββ nft_images.db # NFT image cache
βββ docs/ # Documentation
β βββ ARCHITECTURE.md # System architecture
β βββ API_PROVIDERS.md # API provider details
β βββ DOCKER_DEPLOYMENT.md # Docker setup guide
β βββ BACKUP_RESTORE_GUIDE.md # Backup documentation
β βββ docs/Exchange-Integration.md # Exchange setup guide
βββ .env # API keys (you create this)
βββ .env.example # Example configuration
βββ requirements.txt # Python dependencies
βββ deploy.sh # Guided deployment script
βββ run.sh # Start server (local)
βββ stop.sh # Stop server (local)
βββ CHANGELOG.md # Version history
βββ README.md # This file
POST /auth/login- Login with credentialsPOST /auth/logout- End sessionPOST /auth/change-password- Change password
GET /wallets- List all tracked walletsPOST /wallets- Add a new walletDELETE /wallets/{id}- Remove a walletPOST /wallets/{id}/refresh- Refresh wallet data
GET /portfolio/summary- Get portfolio overviewGET /portfolio/history?range=7d|4w|3m- Historical valuesPOST /portfolio/snapshot- Create manual snapshot
GET /dashboard/data- Aggregated dashboard data
GET /prices- Current cryptocurrency prices
GET /defi/staking- Cardano staking positions
GET /exchanges/balances- Exchange holdings
GET /nfts- NFT collection with valuesGET /nfts/summary- Collections groupedGET /nfts/prices/status- Price collection statusPOST /nfts/prices/collect- Trigger price collection
GET /transactions- Transaction history with filteringGET /transactions/analytics- Transaction analytics data
GET /balance-history/data- Balance history chart dataPOST /balance-history/clear-cache- Clear history cache
GET /nft-scheduler/status- Scheduler status and statisticsPOST /nft-scheduler/enable- Enable background updatesPOST /nft-scheduler/disable- Disable background updatesPOST /nft-scheduler/trigger- Manually trigger update cycle
GET /custom-tokens- List custom tokensPOST /custom-tokens- Add a custom tokenDELETE /custom-tokens/{id}- Remove a custom token
GET /spam/filters- List spam filtersPOST /spam/filters- Add spam filter
GET /cache/stats- Cache statisticsPOST /cache/clear- Clear cached data
GET /backup/info- Backup information and statisticsPOST /backup/export- Export configuration to JSONPOST /backup/preview- Preview backup file (dry-run)POST /backup/import- Import configuration from backupGET /backup/export-env- Export API keys as .env filePOST /backup/import-env- Import API keys from .env file
GET /system/info- System information and healthGET /system/logs- View system logs
POST /engine/backfill- Start a new backfill jobGET /engine/backfill/{id}/status- Backfill progress and statusPOST /engine/backfill/{id}/cancel- Cancel a running backfillGET /engine/backfills- List all backfillsGET /engine/gaps- Diagnose data gapsGET /engine/snapshot- Portfolio snapshot from canonical eventsGET /engine/history/data- Balance history (backward-compatible format)GET /engine/providers- List registered providersGET /engine/providers/health- Provider health and circuit breaker statesGET /engine/events- Query canonical eventsGET /engine/events/count- Event counts by chain/type
# ============================================
# REQUIRED: Cardano Blockchain API
# ============================================
BLOCKFROST_API_KEY=mainnetXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# ============================================
# RECOMMENDED: Enhanced Features
# ============================================
CEXPLORER_API_KEY=your_key_here # Staking positions and rewards
TAPTOOLS_API_KEY=your_key_here # NFT floor prices
# ============================================
# OPTIONAL: Additional Blockchains
# ============================================
ETHERSCAN_API_KEY=your_key_here # Ethereum support
ALCHEMY_API_KEY=your_key_here # Ethereum/Polygon/Base NFTs
HELIUS_API_KEY=your_key_here # Solana support
# ============================================
# NFT Background Scheduler (v0.9.0+)
# ============================================
NFT_SCHEDULER_ENABLED=false # Enable automatic NFT price updates
NFT_UPDATE_INTERVAL_MINUTES=15 # Update every 15 minutes (default)
NFT_CALLS_PER_UPDATE=1 # Collections per cycle
NFT_MAX_DAILY_CALLS=95 # Daily API call limit
# ============================================
# Authentication (v0.10.0+)
# ============================================
ABCT_REQUIRE_AUTH=false # Set to false for localhost-only
# ABCT_ADMIN_USER=admin # Required if auth enabled
# ABCT_ADMIN_PASSWORD=secure_password # Required if auth enabled
# ============================================
# HTTPS/SSL (Optional)
# ============================================
# ABCT_SSL_MODE=http # Options: http | https-self-signed | https-custom
# ABCT_SSL_CERT=/path/to/cert.pem
# ABCT_SSL_KEY=/path/to/key.pemABCT supports 7 major cryptocurrency exchanges. For detailed setup instructions, see Exchange Integration Guide.
Supported Exchanges:
- Coinbase (CDP API) - Place
cdp_api_key.jsonfile in project root - Binance.com - Add
BINANCE_API_KEYandBINANCE_API_SECRETto .env - Binance.US - Add
BINANCE_US_API_KEYandBINANCE_US_API_SECRETto .env - OKX - Add
OKX_API_KEY,OKX_API_SECRET,OKX_API_PASSPHRASEto .env - Bitget - Add
BITGET_API_KEY,BITGET_API_SECRET,BITGET_API_PASSPHRASEto .env - Gate.io - Add
GATE_API_KEYandGATE_API_SECRETto .env - KuCoin - Add
KUCOIN_API_KEY,KUCOIN_API_SECRET,KUCOIN_API_PASSPHRASEto .env
Security Note: Always create API keys with read-only permissions. Never grant withdrawal or trading permissions.
# Activate virtual environment
source venv/bin/activate
# Run with auto-reload
cd backend
uvicorn main:app --reload
# Run tests (if available)
pytest- Local Only: Server binds to 127.0.0.1 by default (localhost-only)
- Read-Only Access: Cannot move funds, only view balances and data
- No Telemetry: No data sent to external analytics or tracking
- Local Database: All data stored in local SQLite files
- Optional Authentication: HTTP Basic Auth for network-exposed deployments (v0.10.0+)
- HTTPS Support: SSL/TLS encryption with self-signed or custom certificates (v0.8.0+)
- Secure Logging: Audit trails with sensitive data redaction
- Input Validation: Protection against malformed inputs and XSS
- Rate Limiting: API endpoint protection against abuse
- CORS Hardening: Restricted cross-origin access
- DOMPurify: Client-side XSS protection on all HTML rendering
Note: This application is designed for self-hosted, localhost-only use. The optional authentication feature allows running without credentials on trusted local installations, or with Basic Auth if you expose it on your network.
For detailed security information, see SECURITY.md
- Docker Deployment Guide - Complete multi-platform Docker setup
- Exchange Integration Guide - Setup for 7 supported exchanges (v1.0.0+)
- Quick Start Guide - Get up and running
- Architecture - System design overview
- Backup & Restore Guide - Configuration management
- Security Guide - Security best practices
- API Documentation - Complete endpoint reference
# Check if port is in use
lsof -i :8000
# Kill existing process
./stop.sh# Refresh all wallet data
# Click the refresh button in the UI, or:
curl -X POST http://127.0.0.1:8000/wallets/1/refresh# Backup first!
cp data/portfolio.db data/portfolio.db.backup
rm data/portfolio.db
./run.sh # Fresh database createdMIT License - see LICENSE file for details.
Built with amazing open-source tools and data from leading blockchain API providers:
- FastAPI - Modern Python web framework
- APScheduler - Background task scheduling
- SQLite - Embedded database
- HTTPX - Async HTTP client
- Blockfrost - Primary Cardano blockchain API (addresses, transactions, assets, staking)
- TapTools - Cardano NFT floor price data and token analytics
- CExplorer - Cardano staking positions and DeFi data
- Koios - Free Cardano API (metadata fallback)
- Alchemy - Multi-chain infrastructure (Ethereum, Polygon, Base, Optimism)
- Etherscan - Ethereum blockchain explorer API
- Basescan - Base blockchain explorer API
- Polygonscan - Polygon blockchain explorer API
- Helius - Solana blockchain API and RPC
- Blockstream - Bitcoin blockchain data (free, no API key required)
- Pera Wallet - Algorand blockchain API (primary)
- Tatum - Algorand blockchain data (fallback)
- CoinGecko - Cryptocurrency price aggregation and market data
- CoinMarketCap - Alternative cryptocurrency price data
- Coinbase - Spot price data (public API)
- DefiLlama - Universal price fallback for all chains
- LogoKit - Blockchain and cryptocurrency logos
- Logostream - Token logo API for multi-chain assets
- Coinbase CDP - Exchange API for portfolio balances (JWT authentication)
- Binance - Global cryptocurrency exchange API
- Binance.US - US-based exchange API
- OKX - Multi-asset exchange API
- Bitget - Derivatives and spot trading exchange API
- Gate.io - Comprehensive exchange API
- KuCoin - Global cryptocurrency exchange API
- Midnight Network - Privacy-focused Cardano partner chain (NIGHT token support)
- Logostream Crypto Logos provided by Logostream
For detailed API information including rate limits and pricing, see API Providers Guide.
- Repository: https://github.com/Tarrant64/abct
- Releases: https://github.com/Tarrant64/abct/releases
- Issues: https://github.com/Tarrant64/abct/issues
- Latest Release: v1.5.0 - V2 Ingestion Engine
Current Version: v1.5.0 (BUILD 1770563676) Last Updated: February 8, 2026 Release Date: February 8, 2026