You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: dynamic CCXT credentials + single-page New Account wizard
Fixes inability to configure wallet-based exchanges like Hyperliquid:
CcxtBroker previously hardcoded apiKey + secret + password fields, but
each CCXT exchange declares its own requiredCredentials map (10 standard
fields including walletAddress, privateKey, uid, twofa, etc.).
Backend
- CcxtBroker.configSchema accepts all 10 CCXT credential fields, with
legacy `apiSecret` aliased to `secret` for back-compat
- Constructor passes all set fields through to ccxt[exchange]() generically
- init() validates via the exchange's own checkRequiredCredentials() and
reports which fields are missing
- New endpoints: GET /ccxt/exchanges (list all CCXT-supported exchanges)
and GET /ccxt/exchanges/:name/credentials (read requiredCredentials)
- BrokerRegistryEntry gets a setupGuide field; ccxt/alpaca/ibkr each
have a multi-paragraph guide explaining what they are, how to get
credentials, and prerequisites
Frontend
- TradingPage CreateWizard refactored from two-step to single-page form
(consistent with EditDialog and other config dialogs); deleted
StepIndicator and the sensitive/non-sensitive field split that put
Hyperliquid's walletAddress and privateKey on different pages
- Selecting a platform shows the broker's setupGuide as a description
block before the configuration fields
- For CCXT: exchange dropdown is populated dynamically from
/ccxt/exchanges, and credential fields are loaded based on the
selected exchange via /ccxt/exchanges/:name/credentials
- EditDialog also wired with dynamic CCXT credential fetching
- Bump version to 0.9.0-beta.11
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
setupGuide: `CCXT is a unified library that connects to 100+ cryptocurrency exchanges through a single API. After picking a specific exchange below, the form will auto-load the credential fields that exchange requires.
70
+
71
+
Most exchanges (Binance, Bybit, OKX, etc.) use API key + secret — you can create them in your exchange account's API settings. OKX additionally requires a passphrase you set when creating the key.
72
+
73
+
Wallet-based exchanges like Hyperliquid use a wallet address + private key instead. For Hyperliquid, you can generate a dedicated API wallet at app.hyperliquid.xyz/API to avoid exposing your main wallet's private key.
74
+
75
+
Make sure to grant only the permissions you need (read + trade), and never enable withdrawal permissions on automated trading keys.`,
setupGuide: `Alpaca is a commission-free US equities broker with a clean REST API. It supports paper trading (free, simulated) and live trading.
90
+
91
+
Sign up at alpaca.markets, then create API keys from the dashboard. Toggle "Paper" on this form to use the paper trading endpoint with your paper keys, or off for live trading with your live keys (different key sets).`,
setupGuide: `Interactive Brokers requires a local TWS (Trader Workstation) or IB Gateway process running on your machine. OpenAlice connects to it over a TCP socket — no API key needed, authentication happens via TWS login.
107
+
108
+
Before connecting:
109
+
1. Open TWS / IB Gateway and log in to your paper or live account
110
+
2. Enable API access: File → Global Configuration → API → Settings → "Enable ActiveX and Socket Clients"
111
+
3. Note the socket port (paper: 7497, live: 7496)
112
+
4. Add 127.0.0.1 to "Trusted IPs" if running locally
113
+
114
+
Paper trading requires a separate paper account login in TWS.`,
0 commit comments