A Telegram bot for tracking cryptocurrencies, managing portfolios, setting alarms, and more.
Built with Python, aiogram for Telegram integration, and APScheduler for scheduled tasks.
This project is now open-sourced to encourage community-driven development.
The original developer has stepped back from active maintenance, but the codebase is stable and ready for new contributors.
Feel free to fork, extend, and evolve it—add advanced charting, more indicators, new APIs, or anything the community needs.
- Buy and sell coins
- Track portfolio value
- View fiat balances
- Monitor your favorite coins
- View prices, 24h changes, RSI, MACD, and other indicators
- Price thresholds
- Percentage change alerts
- Indicator-based triggers (e.g., RSI overbought/oversold)
- Define budgets
- Set savings goals
- Track spending over time
- Unlock badges for milestones (first purchase, portfolio value targets, etc.)
- Automatic summaries of portfolio performance
- Rate limiting to avoid abuse
- File-based price caching for efficient API usage
- Interactive interface with Telegram keyboards for easy navigation
- Python 3.12+
- Libraries:
aiogramapschedulerrequests(for APIs such as CoinGecko)json- Other dependencies as imported in
main.py
- Telegram Bot Token from
@BotFather - API Access: Uses the free CoinGecko API (no token required)
-
Clone the repository
git clone https://github.com/TPTBusiness/PortfolioWatch.git
-
Install dependencies
pip install aiogram apscheduler requests
-
Create configuration file
Inconfig/config.py:# Example config/config.py BOT_TOKEN = "your_bot_token_here" ALARM_FILE = "data/alarms.json" # add other paths and settings as needed
-
Prepare data directory
Create adata/folder for JSON files (these are created automatically if missing, but you can pre-create them):data/cache.json– price cachedata/portfolio.json– user portfolios- other JSON files for alarms, watchlists, etc.
-
Run the bot
python main.py
- Start the bot in Telegram with
/start - Navigate via the on-screen dashboard buttons
- For manual coin lookup, type a symbol (e.g.,
BTC) - Set alarms using the callback buttons provided in the interface
Contributions are welcome and highly encouraged. With the original developer stepping back, this is an opportunity to shape the future of the project.
Ideas for enhancements:
- Add new cryptocurrencies, exchanges, or alternative data sources
- Expand technical indicators
- Improve UI/UX with richer keyboards or visual tools
- Fix bugs, improve performance, refactor structure, or add tests
Contribution workflow:
# Fork the repository, then:
git checkout -b feature/new-feature
git commit -m "Add new feature"
git push origin feature/new-feature
# Open a Pull Request on GitHubPlease follow Python best practices and include tests when possible.
MIT License — see the LICENSE file for details.
This bot uses public APIs; data such as prices may not be real-time or fully accurate. This is not financial advice—use the bot at your own risk.
Originally developed in 2025 and released to the public for community contribution.