Brokers & sessions
Three brokers, one terminal.
Zerodha, Dhan and Angel One — each modelled as it actually behaves, with your keys in the OS keychain and your positions pinned to the account that holds them.
Three brokers, one terminal
| Broker | Sign-in | Notes |
|---|---|---|
| Zerodha (Kite Connect) | Browser redirect — user ID, password and TOTP are typed on Kite's own page, never in the app | Needs an API key + secret from your Kite Connect app. |
| Dhan | Access token | The only broker serving 20-level depth today (NSE/NFO). Forever orders back standing triggers. |
| Angel One (SmartAPI) | Client code + MPIN + TOTP | Needs an API key. GTT support differs; the app states what each broker can and can't do rather than pretending they're identical. |
The app models each broker's actual shape — which order types it accepts, whether it serves 20-level depth, how it does standing triggers, what its sign-in flow is — and adapts the UI to it. A control a broker doesn't support is disabled with the reason, not silently ignored.
Your keys stay on your machine
API keys and secrets go into the OS keychain (macOS Keychain, Windows Credential Manager), or an encrypted vault file on a server. They are entered once, never synced, and never sent anywhere except your broker. The app's own code signature gates access to those keychain items.
Passwords and TOTP for the browser-redirect flow are never typed into QuantumCat at all — that happens on the broker's own page. And the assistant, however you ask it, has no path to your credentials.
Sessions, honestly reported
- Token expiry is shown before it bites an order, not after — the sessions panel carries the live state per broker and how long today's token has left.
- Full-auto daily sign-in can mint the day's token for you, with its health reported beside each broker.
- A broker outage is not a wrong password. A 5xx from the broker during token validation is treated as ambiguous and the day's still-valid token is kept — it is never deleted because someone else's gateway hiccupped.
- A status read that fails says “unknown”, not “signed out”, and never “flat”.
Numeric tokens don't collide across brokers
Every broker numbers instruments in its own space — a Zerodha instrument token, a Dhan security id and an Angel symboltoken are independent, colliding u32 spaces. QuantumCat keeps them separate everywhere it matters: an order, a position, a stop or a price is always resolved against that broker's own master, qualified by exchange. A position opened on one account is pinned to it, so a later account switch can never query, trade or flatten it on the wrong one.
SEBI-era plumbing, handled
SEBI gates API order endpoints on an IP registered with the broker (charts and live prices are exempt). The app detects your current public address, shows it for copying into the broker console, and re-reads it through the broker's own connection after sign-in to tell you if it changed. If your address moves — a mobile hotspot, some fibre plans — a fixed-IP relay can be configured so you trade from one registered address on any network. A malformed relay blocks orders loudly rather than being silently ignored.