Integrations
Every third-party service TradingWizard talks to, grouped by what it does. If it is not in this list, we do not integrate with it yet.
Non-custodial by default
Exchange API keys are stored AES-256 encrypted at rest (the same key envelope used for MT5 credentials). We never request withdrawal permissions. For portfolio sync use read-only keys. MT5 live trading is admin-only today and gated via ADMIN_EMAILS in lib/executors/types.ts; non-admin accounts always fall through to the paper executor.
Exchanges
Read-only portfolio sync via API key. Live balances populate the Portfolio Heatmap.
Same connect flow as Binance. Uses the Exchanges tab inside Settings.
Live execution for forex/indices via MetaAPI.cloud. Currently gated to admin accounts while the executor stabilises.
Communications
OAuth link, automatic Pro/Ultimate role on the server, and bot-signal webhooks per market.
Transactional email (account, billing, trade alerts). Inbound event webhook tracks opens and clicks.
Web-push notifications for bot signals, trade fills, and important market events.
Payments
Authentication & Security
Invisible bot challenge on sign-up and sign-in. No CAPTCHA puzzles.
One-click sign-in with your Google account via NextAuth.

Sign in with Apple — email privacy relay supported.
Hardware-backed passwordless login via @simplewebauthn. Register multiple devices per account.
External surfaces
Connecting an exchange
Enable 2FA on your TradingWizard account
The Connect Exchange modal refuses to submit until your account has 2FA turned on. Open Settings → Security to set it up.
Generate read-only API keys
On Binance or Bybit, create a new API key named TradingWizard. Leave permissions at the default read-only. Do not enable withdrawals.
Paste into the Connect Exchange modal
Open Settings → Exchanges → Connect. Pick Binance or Bybit, paste the key and secret, and click connect. We ping the exchange to validate, then sync balances into the Portfolio Heatmap.
Next: Webhooks
How TradingView alerts reach us, and how our bot signals reach Discord.