Automatically sync your crypto portfolio's value with YNAB (You Need A Budget). Keep your budget up-to-date with real-time cryptocurrency valuations across multiple platforms.
- 🔄 Automatic synchronization with YNAB
- 💰 Multi-platform support:
- Bitcoin wallets
- EVM-compatible wallets (Ethereum, Avalanche, Polygon, zkSync, Arbitrum, Optimism)
- Solana wallets
- Binance exchange
- 🌐 Daily price updates
- 🔐 Secure API integration
- 🐳 Docker support
- Rust toolchain (for running locally) or Docker with Docker Compose
- YNAB Personal Access Token (Get it here)
- Exchange API keys (optional)
- Some wallet addresses to track
# Clone the repository
git clone https://github.com/zannis/ynab-crypto-portfolio-sync-rs.git
cd ynab-crypto-portfolio-sync-rs
# Build the project
cargo build --release
- Copy the environment template:
cp .env.template .env
- Configure your
.env
file with the following variables:
Variable | Required | Description |
---|---|---|
YNAB_ACCESS_TOKEN |
Yes | Your YNAB Personal Access Token |
EVM_WALLETS |
No | Comma-separated list of EVM-compatible wallet addresses |
BTC_WALLETS |
No | Comma-separated list of Bitcoin wallet addresses |
SOLANA_WALLETS |
No | Comma-separated list of Solana wallet addresses |
YNAB_ACCOUNT_NAME |
No | Custom name for your crypto tracking account (default: "Crypto") |
BINANCE_API_KEY |
No | Binance API key for exchange integration |
BINANCE_SECRET_KEY |
No | Binance API secret |
Once you have finished the installation, configure the environment variables in your .env
file and then you can
either:
cargo run
# Build the Docker image
docker compose up
- Support for EVM wallets
- Support for Bitcoin wallets
- Binance integration
- Historical tracking with daily updates
- Solana support
- Support for additional crypto networks:
- Coinbase integration
- Algorand support
- Portfolio performance tracking
- Automated tests
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this project helpful, please consider:
- Starring the repository
- Contributing to the code
- Reporting issues or suggesting features