github marketcalls/openalgo openalgo-crypto-design-seperation
v2.0.0.2

3 hours ago

Version 2.0.0.2 Released

Version 2.0.0.2 Released

Date: 29th Mar 2026

Feature Release: Crypto Trading (Delta Exchange), RMoney Broker, Broker-Exchange Separation, Security Hardening & Performance

This is a feature release featuring 158 commits (excluding auto-builds) from 17 contributors, focused on full crypto trading support via Delta Exchange (24/7 markets, fractional quantities, leverage), RMoney broker integration, dynamic broker-exchange separation across all 31 brokers, comprehensive WebSocket FD audit (Phase 2) across 8 more streaming adapters, a 5x startup performance improvement, AliceBlue V3 and Flattrade V2 API upgrades, Zebu OAuth 2.0 migration, event bus architecture, and deep security hardening.


Highlights

  • Crypto Trading (Delta Exchange) - Full cryptocurrency trading support with 24/7 market calendar, fractional quantities, leverage configuration, perpetual/options contracts, and crypto-aware UI across TradingView, GoCharting, Token Search, and Playground pages
  • RMoney Broker Integration - Complete new broker integration including orders, WebSocket streaming, master contracts, funds, margins, multiquotes, and index symbol normalization
  • Broker-Exchange Separation - Dynamic exchange capabilities per broker via plugin.json metadata for all 31 brokers, with frontend auto-adapting UI elements (product types, holdings, leverage) for stock vs crypto brokers
  • Security Dashboard - New security dashboard with auto-ban toggle, table sorting, and IP management hardening
  • Straddle PnL Simulator - New options analytical tool for simulating straddle profit/loss scenarios
  • WebSocket FD Audit (Phase 2) - File descriptor leak fixes across 8 additional broker streaming adapters (Wisdom, iBulls, JainamXTS, IIFL, Compositedge, FivePaisaXTS, Mstock, Motilal)
  • 5x Startup Speedup - Reduced application startup time from 7–9s to ~1.6s via lazy imports, saving ~180MB RAM
  • AliceBlue V3 & Flattrade V2 - Major broker API version upgrades
  • Zebu OAuth 2.0 Migration - Migrated Zebu from TOTP login to OAuth 2.0 authentication
  • Event Bus Architecture - Decoupled order side-effects via new event bus system with eventlet compatibility
  • Deep Security Audits - 3 high-severity and 5 medium-severity findings patched, plus 6 CVE fixes

New Features

Crypto Trading Support (Delta Exchange)

  • Full cryptocurrency trading with fractional spot quantities on Delta Exchange
  • 24/7 market calendar system for crypto exchanges (no auto-logout)
  • Leverage configuration page for crypto brokers with validation
  • Broker capabilities API endpoint and frontend Zustand store
  • Dynamic exchange support via supported_exchanges in plugin.json for all 31 brokers
  • Wire useSupportedExchanges hook into all tools and WebSocket pages
  • Hide Holdings page and Product column for crypto brokers
  • Dynamic exchanges and product hiding for crypto on TradingView, GoCharting, and Token Search
  • Dynamic WebSocket presets for crypto in Playground
  • Crypto Bruno collection and broker-aware Playground loading
  • Subscribe to BTCUSDFUT for crypto option chain live underlying price
  • Conditionally show Leverage page for crypto brokers only
  • Add migration for contract_value column in symtoken table
  • Add CRYPTO to schema validations
  • Show combined spot+FNO wallet balance in INR for Delta Exchange

RMoney Broker Integration (New)

  • Complete broker integration from scratch — auth, order APIs, WebSocket streaming
  • Master contract download and data REST APIs
  • Funds API, Margin API, Multiquotes
  • Common NSE/BSE index symbol normalization
  • Added to all broker lists across install scripts and documentation

Straddle PnL Simulator

  • New Straddle PnL Simulator page (/straddlepnl) for options strategy analysis

Security Dashboard

  • Security dashboard with auto-ban toggle, table sorting, and hardening

Event Bus Architecture

  • Event bus for decoupled order side-effects (Telegram notifications, logging)
  • Resolve greenlet crash in event bus subscribers under eventlet

Infrastructure & Deployment

  • Domain change script for existing server deployments
  • Update scripts for Linux and Windows
  • Add Delta Exchange broker to install scripts and documentation
  • Logout confirmation dialog warning about automated orders

Frontend Enhancements

  • Toast notifications for CSV export across all trading pages
  • CSV export respects active filters in OrderBook and TradeBook
  • Add MCX/CDS default underlyings to useSupportedExchanges
  • Dynamic webhook URL based on TradingView alert mode

Broker-Specific Changes

Delta Exchange (New Crypto Broker)

  • Full crypto trading support with fractional quantities for spot and derivatives
  • 24/7 market calendar and auto-logout disabled
  • Leverage configuration with fractional rejection and retry on fetch error
  • Crypto perpetual symbol lookup and expiry support
  • Correct crypto exchange mapping, depth validation, and broker quotes
  • Source session P&L from positions endpoint
  • Fix fractional spot quantity truncation in margin calculation
  • Safe-parse tradedQuantity and tradedPrice in tradebook transform
  • Filter orders and trades by current day
  • Cancel all orders includes GTC orders from prior days
  • Retry-on-transient-error for data API with read timeout support
  • Format Delta Exchange symbols to OpenAlgo convention
  • Resolve correct perpetual underlying for crypto options

RMoney (New Broker Integration)

  • Complete implementation: auth, orders, WebSocket, funds, margins, multiquotes
  • Master contract download and data REST APIs
  • Common NSE/BSE index symbol normalization
  • Fix file descriptor leaks in XTS WebSocket streaming

Zebu

  • Migrate from TOTP login to OAuth 2.0 authentication
  • Fix MARKET order price handling and WebSocket disconnect deadlock
  • Fix order status, positions, MPP tick_size, and WebSocket stability
  • Resolve file descriptor leaks in WebSocket adapter

AliceBlue

  • Upgraded to V3 API
  • Fix WebSocket resource leaks, index historical data, and Funds realised PNL

Flattrade

  • Update to V2 API endpoints and WebSocket payload
  • Fix WebSocket auth ack type

Fyers

  • Fix rate limiting for Funds API
  • Correct reformat_symbol_detail day/year swap (DDMMMYY → correct format)
  • Add order, trade, and position data mapping and transformation utilities

Angel

  • Update base URL, add rate limit retry, and fix limit order price

Dhan

  • Sandbox API updated and added mocked WebSockets
  • Lazy-connect 20-depth WebSocket to preserve connection limit

Shoonya

  • Harden WebSocket streaming adapter (13-round FD audit)

Kotak

  • Harden WebSocket streaming adapter (9-round FD audit)

Groww

  • Make bulk insert atomic to prevent partial data on failure
  • Optimize master contract download and normalize streaming logs
  • Add common NSE/BSE index symbol mappings

Motilal

  • Add comprehensive NSE/BSE index symbol mappings
  • Fix WebSocket file descriptor leaks

Mstock

  • Fix WebSocket file descriptor leaks
  • Add common index symbol normalization

Compositedge

  • Common index symbol normalization
  • FD audit for streaming — prevent socket/thread leaks

XTS Brokers (FivePaisaXTS, iBulls, IIFL, JainamXTS, Wisdom)

  • Add index symbol normalization for all XTS brokers
  • FD audit for streaming adapters — prevent socket/thread leaks across all 5 brokers

Upstox

  • Handle position fetch failure in margin calculation

Multiple Brokers

  • Normalize tick_size from paise to rupees for Dhan, Firstock, Kotak, Nubra, Shoonya
  • Coerce order quantity to int for non-crypto brokers

Bug Fixes

WebSocket & Streaming

  • FD audit for 6 XTS broker streaming adapters (Wisdom, iBulls, JainamXTS, IIFL, Compositedge, FivePaisaXTS)
  • Harden Shoonya WebSocket streaming adapter (13-round FD audit)
  • Harden Kotak WebSocket streaming adapter (9-round FD audit)
  • Fix WebSocket file descriptor leaks for Mstock and Motilal
  • Fix WebSocket disconnect deadlock in Zebu adapter
  • Snapshot self.ws before on_open callback in _handle_auth_response

Frontend & UI

  • GoCharting page not showing API key on load
  • Handle invalid date in orderbook and tradebook for all brokers
  • Prevent strategy name overflow from hiding dropdown menu on Python Strategy page
  • Add optional chaining for holiday data in useMarketStatus
  • Stale data warning banner never auto-dismisses (closes #1095)
  • Preserve user exchange selection during async capability sync
  • Fallback exchanges, leverage route guard, and async state sync
  • Clear stale capabilities on no-broker session
  • Use makeFormatCurrency in WebSocketTest instead of hardcoded broker check
  • Ensure CSV export respects active filters in OrderBook and TradeBook

Orders & Positions

  • Use futures symbol for MCX/CDS LTP in optionsmultiorder
  • Prioritize explicit expiry_date and use futures symbol for MCX/CDS LTP
  • Optimize multi option Greeks to batch API calls (84 → 2)
  • Inject symbol/exchange keys into failed Greeks responses
  • get_first_available_api_key() returns orphaned/revoked user keys
  • Coerce order quantity to int for non-crypto brokers

Backend & Server

  • Pin gunicorn to 25.x and disable control socket
  • Replace bare except and silent exception handlers
  • Resolve greenlet crash in event bus subscribers under eventlet
  • Revert marshmallow to 3.x (4.x breaks schemas)
  • Revert llvmlite and pydantic-core to compatible versions
  • Make /api/v1/telegram/notify non-blocking by default
  • Prevent test-message endpoint from returning 500 on timeout
  • Fallback to plain text when Telegram Markdown parsing fails
  • Clean up logs_session in SecurityMiddleware for banned IP requests
  • Add graceful shutdown for strategy order processor queue
  • Guard ZMQ cleanup in stop() to prevent "not a socket" error on Ctrl+C
  • Force master contract re-download on broker change
  • Dynamic webhook URL based on TradingView alert mode
  • Correct 2026 market holiday calendar per official NSE/MCX circulars
  • Normalize tick_size from paise to rupees for 5 brokers
  • Remove duplicate code block causing IndentationError in brlogin.py

Security

  • Patch 3 high-severity security findings from deep audit
  • Patch 5 medium-severity security findings from deep security audit
  • Patch 3 security vulnerabilities (CVE Dependabot #105, #106, #107)
  • Upgrade PyJWT to 2.12.0 (security fix)
  • Update requests 2.32.5 → 2.33.0 (security patch)
  • Patch npm vulnerabilities (socket.io-parser, picomatch)
  • Bump svgo 4.0.0 → 4.0.1 (CVE-2026-29074)
  • Bump tornado 6.5.4 → 6.5.5 (CVE-2025-47287)
  • Replace bare except and silent exception handlers across codebase
  • Security dashboard with auto-ban toggle and IP management

Performance

  • Reduce startup time from 7–9s to ~1.6s (5x speedup)
  • Lazy-load heavy imports to reduce startup RAM by ~180MB
  • Lazy-load python-telegram-bot library to reduce startup RAM
  • Move startup logs to debug level to reduce log noise
  • Optimize multi option Greeks to batch API calls (84 → 2 requests)

Refactoring & Code Quality

  • Refactor code structure for improved readability and maintainability
  • Move Bruno collections to IN_stock subfolder
  • Add Google-style docstrings to utils module
  • Add type hints and docstrings to security_middleware.py
  • Correct check_tmp_noexec return type annotation
  • Move test_orphaned_apikey.py to test/ directory
  • Add missing file header comments to broker funds.py files
  • Add aria-label attributes to icon-only buttons for screen reader accessibility
  • Remove frontend/dist from version control (CI/CD builds it)

Documentation

  • Rewrite CONTRIBUTING.md for React 19 + uv stack
  • Add incremental contribution policy to CONTRIBUTING.md
  • Allow new broker integrations as single PR in contribution policy
  • Update README to enhance description of OpenAlgo and supported brokers
  • Update README YouTube video tutorial link
  • Broker-exchange separation audit for stock vs crypto UI
  • Crypto PR audit report for Delta Exchange integration

Dependencies

Python

  • Bump the python-minor group with 22 updates + 13 additional updates
  • requests 2.32.5 → 2.33.0
  • PyJWT → 2.12.0
  • pytz 2025.2 → 2026.1.post1
  • bcrypt 4.1.3 → 5.0.0
  • cachetools 5.3.3 → 7.0.4
  • markdown-it-py 3.0.0 → 4.0.0
  • limits 3.13.0 → 5.8.0
  • flask-limiter 3.7.0 → 4.1.1
  • pyarrow 22.0.0 → 23.0.1
  • tornado 6.5.4 → 6.5.5
  • openalgo 1.0.45 → 1.0.46
  • gunicorn pinned to 25.x
  • marshmallow 4.2.2 reverted to 3.x (compatibility)

Frontend

  • svgo 4.0.0 → 4.0.1
  • socket.io-parser security patch
  • picomatch security patch

Contributors

Special thanks to all contributors who made this release possible:

  • @Kalaiviswa (kalaivani) — Crypto broker support, broker-exchange separation, WebSocket FD audits (Phase 2), security dashboard, leverage page, event bus
  • @RochRonaldo (roch ronaldo) — RMoney broker integration
  • @BashabBhattacharjee (Bashab Bhattacharjee) — Delta Exchange crypto support, fractional quantities, Zebu OAuth 2.0 migration
  • @Sadhanandhann — Dhan sandbox API and mocked WebSockets
  • @GahanShetty (Gahan Shetty) — AliceBlue V3 upgrade
  • @sugatmankar — Groww index symbol mappings
  • @shubhamlodha21 — Flattrade WebSocket auth fix
  • @preet225 — Angel rate limiting and base URL fixes
  • @crypt0inf0 — Delta Exchange fixes
  • @Profesooor — Fyers symbol detail fix
  • @PratimaPrit — Accessibility improvements
  • @LuckyAnsari22 — Motilal index symbol mappings
  • @jaredw — Security middleware docstrings
  • @jagatsingh (Jagat Singh) — Dhan lazy WebSocket connect
  • @hirenthakore (Hiren Thakore) — RMoney XTS WebSocket FD fix
  • @DeepanshuGoyal (Deepanshu Goyal) — Aliceblue V3 Integration


Links


Don't miss a new openalgo release

NewReleases is sending notifications on new releases.