Skip to content

zannis/ynab-crypto-portfolio-sync-rs

Repository files navigation

YNAB Crypto Portfolio Sync 🚀

Release Rust License: MIT

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.

✨ Features

  • 🔄 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

🚀 Quick Start

Prerequisites

  • 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

Installation

# 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

⚙️ Configuration

  1. Copy the environment template:
cp .env.template .env
  1. 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

🔧 Usage

Once you have finished the installation, configure the environment variables in your .env file and then you can either:

Run as a Standalone Binary

cargo run

Run with Docker Compose

# Build the Docker image
docker compose up

🗺️ Roadmap

  • 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

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

💖 Support

If you find this project helpful, please consider:

  • Starring the repository
  • Contributing to the code
  • Reporting issues or suggesting features

🔗 Related Projects

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published