Security
How your credentials, your traffic and your record are handled
QuantGrid places orders inside your broker accounts, so you are entitled to know exactly what it holds, where it connects from and what it writes down. This page states the mechanism rather than the reassurance.
- Access
- Broker OAuth token
- Stored credentials
- Encrypted, and only if you opt in
- Source address
- Dedicated, never shared
Practices
Six things we do, and how each one actually works
Every item below is something you can ask us to demonstrate, or verify from your own broker console and your own trade log.
Your broker credentials stay yours
QuantGrid connects through your broker's official API using tokens you authorise. You can revoke access from your broker's console at any time, and the connection stops immediately.
You authorise QuantGrid on the broker's own screen wherever the broker publishes one that QuantGrid uses, as Zerodha, Angel One, FYERS, Upstox, Nuvama Wealth, ICICI Direct, Dhan, Tradejini and IIFL do. What comes back is an API session token scoped to that broker's API. QuantGrid holds that token and the API key of the app you created with that broker and, where the broker issues one, its secret, encrypted; the key and secret are not enough to sign in as you, and QuantGrid never sees your password or second factor.
Some brokers publish no login page at all. Groww, Motilal Oswal and Kotak are signed in from the credentials that broker's own login asks for plus a TOTP secret you supply, and Zerodha, Angel One, FYERS, Upstox, Nuvama Wealth, Dhan, Tradejini and IIFL can be signed in either way, so you choose. Where QuantGrid holds a TOTP secret it is encrypted at rest and used for nothing but that broker's own login.
ICICI Direct is the opposite case and gets no automatic option at all: it publishes no unattended login, so a session there can only ever begin with a sign-in you complete yourself. Nothing beyond your own app's API key and, where the broker issues one, its secret, and the session token each sign-in returns, is stored for it, and the key and secret are not enough to sign in as you.
QuantGrid uses a broker session for one day at most: until the broker's own daily cut-off or, where a broker publishes none, until midnight IST. None of them can be refreshed without signing in again.
A static IP reserved to you alone
Every broker account you connect gets a dedicated static IP address that is never shared with another customer. Brokers that require API access from a whitelisted IP will see one stable address, and your API activity is never mixed with anyone else's.
The address is allocated to your account and stays the same across restarts, redeploys and reconnects. Everything QuantGrid does on your behalf leaves from it: the authorisation call, the order WebSocket subscription, the REST order-book polls and every child order placement.
If your broker asks you to declare or whitelist the address your API calls come from, you enter one value, once. No other customer's traffic ever originates from it.
Encryption in transit and at rest
All traffic runs over TLS. Broker tokens and account secrets are encrypted at rest and are never written to application logs.
Broker traffic is HTTPS and WSS only, with no plaintext fallback path. Tokens and account secrets are encrypted before they reach the database, and the fields holding them are excluded from application log output.
Some broker socket handshakes carry the access token inside the connection URL. Rather than record that request and redact it afterwards, the telemetry pipeline drops WebSocket handshake events entirely, so the token never lands in a monitoring system in the first place.
Tenant isolation
Each account's data is bound to its own tenant at the point where a broker stream is opened, so one customer's order events can never reach another customer's replication engine.
The owning account is attached at the moment a broker stream is opened, not looked up later. That identity travels with the event through normalisation, the in-process event bus and job creation, so there is no stage where an event exists without knowing whose it is.
Broker accounts carry an owner as a database foreign key, and a copy relationship can only be created between accounts under the same login. It is a constraint in the schema, not a check in the interface.
Duplicate-order protection
Every replicated order passes three independent duplicate checks before it reaches a broker. A network retry, a reconnect or a repeated event cannot place the same child order twice.
The three layers are independent by design. A marker key in Redis short-circuits an event that has already been handled. A distributed lock, held per child account and instrument, stops two workers racing on the same fill. A unique database index on the idempotency key is the final backstop.
The first two exist for speed. The third exists for correctness: if the database refuses the insert, no order is sent to the broker.
Complete audit trail
Every event received, every decision taken and every broker response is written to an append-only log. Your dashboard shows the decisions and alerts on the Logs page and every order on the Orders page, and support can walk you through the full record of any order.
Order events are written before replication is attempted, each stamped with the path that delivered it (websocket or rest_poll), so you can tell a live socket update apart from one recovered by order-book polling.
Every replication job records the quantity it calculated, the multiplier and lot size it used, the broker's response, and the reason when nothing was sent, including the case where a multiplier floors below one full lot. Records are appended, never edited after the fact.
Dedicated IP
One address, allocated to you, that nobody else connects from
This is the infrastructure feature we lead with, so it is worth more than a bullet point. Here is what it is, why your broker cares, and what specifically breaks without it.
What a static IP is
Every request QuantGrid makes to a broker arrives there from an IP address, and that address is part of what the broker records about the connection. On ordinary cloud hosting the address is drawn from a shared pool: it can differ between two servers, and it can change when a process restarts or moves. A static IP is a single address allocated to you and held there, so the broker sees the same origin every time.
Why brokers care where you connect from
Broker API programmes treat the source address as part of an integration’s identity. Some ask you to declare or whitelist the address your API calls originate from. All of them use it in some form for abuse detection, throttling and forensics. An address that moves means re-declaring it, or being treated as an unfamiliar source at exactly the moment you need the connection to work.
On a shared address
- Throttles you did not spend. Broker rate limits are counted per user, but network-level throttles, WAF rules and abuse heuristics are commonly applied per source address. A neighbour's polling loop can eat headroom you were relying on at 09:15.
- Reputation that is not yours. If a block or a flag lands on a shared address because of somebody else's behaviour, your orders are travelling through that same address.
- A whitelist that no longer means anything. Whitelisting an address that other people also use narrows nothing. The control your broker offered you has quietly stopped being a control.
- Attribution you cannot get back. When you ask your broker to check their side, a shared address makes your API calls indistinguishable from everyone else's on the same host.
On your own address
- One value to declare. The address you give your broker is the address every call arrives from, this session and the next.
- Your activity only. Nothing else routes through it, so anything your broker sees from that address was caused by your account.
- Stable across reconnects. Socket drops, restarts and failovers do not move you onto a different address.
- Yours while it is paid for. The allocation is held for your account, not drawn from a pool at connection time.
IPv4 or IPv6: your broker decides
Each broker account you connect gets its own dedicated address, in the one family that broker’s order API accepts: IPv6, the lower price, where the broker can be reached and registered on it, and IPv4 where it cannot. You do not pick: the IP Management page says which family each account gets and why, and the IPv6 page lists what QuantGrid issues for each broker, with the evidence behind it.
| Component | Charged | Price |
|---|---|---|
| Dedicated static IPv6 | per broker account | ₹500 per 30 days, + 18% GST |
| Dedicated static IPv4 | per broker account | ₹600 per 30 days, + 18% GST |
Credentials
What QuantGrid asks for, and what it will never ask for
Copy trading tools are a natural target for phishing, because the payoff is direct access to a funded account. So the boundary is worth stating in one unambiguous line.
Nobody from QuantGrid will ever ask you for a broker credential outside the dashboard.
Not over email, phone, WhatsApp or Telegram, and never a live 2FA code, which no part of this service has any use for. The only place a credential is ever entered is the broker-account form you opened yourself, and what that form asks for depends on the sign-in you chose: nothing beyond your app’s API key, and its secret where the broker issues one, if you sign in on your broker’s own page, and the values that broker’s login needs if you asked QuantGrid to sign in for you. If a message claiming to be from QuantGrid asks for any of it, it is not from us: do not reply, and forward it to support@quantgrid.in.
Authorisation happens on the broker
You are sent to your broker’s own authorisation screen and you approve API access there. QuantGrid receives a session token back. It is the broker, not QuantGrid, that authenticates you, which is the whole point of the flow.
Tokens are encrypted and unlogged
The token is encrypted at rest and excluded from application logs, error reports and telemetry. Support staff diagnosing a failed order work from order events and broker responses, not from your credentials.
You can revoke it, from their side
Access can be withdrawn from your broker’s own console at any time, without asking us and without waiting for us. The connection stops. Every broker’s session also lapses on its own once a day, whether you revoke it or not.
The scope of that token is the broker’s to define, not ours. What it permits, and what it does not, is described in each broker’s API documentation, which we link from the supported brokers pages.
Isolation
Your events reach your engine, and only your engine
Multi-tenancy is where a replication platform fails quietly and expensively. Two structural decisions keep the boundary from depending on anyone remembering to check it.
Ownership is attached at the socket
The tenant is bound when the broker stream is opened, so an order event is never in flight without carrying the account it belongs to. That identity is present through normalisation, through the in-process event bus and into every replication job. Copy relationships are constrained to accounts under a single login by a foreign key in the schema, so the isolation does not rest on an interface check that a future screen could forget to make.
Only a parent can cause an order
QuantGrid streams your child accounts too, but purely to record what happened in them. A fill in a child account is written to the event log and stops there. It cannot start a replication, so a child account can never become an accidental source that fans orders back out across your other accounts. If you want to see how the fan-out is wired, the how it works page walks the full path.
What the record looks like
Shape of the log, not a real accountOne parent order, one child account, four rows. The quantity line shows the arithmetic that produced the child order, so a number you did not expect can be traced to the multiplier, the lot size or the cap that produced it rather than argued about.
| Time IST | Event | Account | Broker order id | Detail |
|---|---|---|---|---|
| 09:15:04.118 | order.received | parent · Zerodha | 250804000112233 | BUY NSE:RELIANCE 100 MKT · source websocket |
| 09:15:04.126 | qty.calculated | child · FYERS | n/a | 100 × 0.50 = 50 · lot 1 · cap 500 |
| 09:15:04.141 | order.placed | child · FYERS | 25080400987654 | BUY NSE:RELIANCE-EQ 50 INTRADAY |
| 09:15:04.147 | order.accepted | child · FYERS | 25080400987654 | broker acknowledged · 29ms end to end |
Reliability
What the 99.9% uptime SLA covers, and what it honestly cannot
An availability number is only useful if the boundary around it is drawn in public. Ours is drawn here: the commitment is 99.9% uptime during NSE and BSE market hours, measured over those hours rather than over the calendar month, although the platform itself runs around the clock.
QuantGrid runs around the clock, and one case is still not copied automatically
QuantGrid runs around the clock, every day. Deploys and planned maintenance are scheduled outside NSE and BSE market hours.
An order already resting on a parent account's order book when QuantGrid starts watching that book is treated as existing, not new, and is not copied automatically, even if it fills later. QuantGrid starts watching a book afresh after a restart or deploy, when copying is switched back on for that parent, and at the first successful read of the book each day after the 00:30 IST daily reset, which waits for the account to be signed in and, on some brokers, for their overnight maintenance to end. If such an order is less than an hour old, QuantGrid may instead ask the account's owner to approve a copy, and nothing is placed unless they do. An order placed while QuantGrid is reading the parent is copied in the ordinary way, whatever the time of day.
The reason is the way the engine starts watching a book. It reads the parent’s order book and records everything already sitting on it as seen, so that starting up mid-session does not mirror a whole trading day into your child accounts. An order resting on that book at that moment is filed as history rather than replicated. The how it works page sets out that startup behaviour in full. The 99.9% uptime commitment is measured over NSE and BSE market hours because those are the hours it covers. Hours outside them are not counted, so they neither count against the figure nor qualify for a remedy.
Inside the SLA
- The QuantGrid replication service during NSE and BSE market hours.
- Event intake from the broker order WebSocket, with REST order-book polling taking over automatically when a socket drops.
- Order placement into linked child accounts, plus the square-off and cancel controls.
- The trade log and the audit trail behind it.
Outside the SLA
- Hours outside NSE and BSE market hours, including evenings, weekends and exchange holidays. The platform runs through them, but they are not counted, so they neither count against the figure nor qualify for a remedy.
- Anything outside the replicated scope. QuantGrid replicates equity and F&O orders on NSE, BSE, NFO and BFO for every account. BSE and BFO trades are not copied to ICICI Direct accounts, whose API accepts orders on NSE and NFO only.
- Broker API outages, broker-side maintenance windows and broker rate limiting.
- Exchange halts, circuit breakers, and any order the exchange or your broker rejects, including margin shortfall, freeze quantity and blocked scrips.
- Daily token expiry. QuantGrid ends every broker session once a day, at the broker's cut-off or, where it publishes none, at midnight IST, and until it is renewed there is no stream to read. Where a broker publishes no unattended login, renewing it means signing in yourself.
- Your own network, device or broker terminal when you are placing the parent order by hand.
How the number is defended
Order updates come off the broker WebSocket first because it is the fastest path. When a socket drops, order-book polling takes over on its own and keeps replicating while the connection is re-established. Both paths run through the same duplicate checks, so the handover cannot double an order. Reconnection is automatic, with a manual reconnect control if you want to force one, and a Telegram alert fires on connection loss so you find out from us rather than from a missing order.
When something is wrong
Scheduled maintenance and any live incident are published on the status page, which is the place to check first when replication is not behaving and the one we update while we are working on it. Support is available Monday to Friday, 8:00 AM to 5:00 PM IST. If an incident affected your account, the audit trail is the record we work from, and support can walk you through the same rows we look at.
Disclosure
Found something? Tell us before you tell anyone else
We would much rather hear about a weakness from a researcher than from a customer. Reports are read by an engineer, not by a ticket queue.
Where to send it
Email support@quantgrid.in with “Security report” in the subject line. If you have had no reply within five working days, escalate to grievance@quantgrid.in and it will be picked up.
What to include
- The endpoint, page or behaviour affected.
- What you did, what you expected and what actually happened.
- Timestamps in IST, and the source address you tested from.
- Any proof-of-concept steps, kept to the minimum needed to show the issue.
What we ask of you
- Test only against an account you own. Never touch another customer's data.
- No automated scanning during market hours, and nothing that degrades the service for people with live positions.
- Give us a chance to respond before publishing.
In return: we acknowledge within two working days, we tell you what we found and whether we are fixing it, and we credit you publicly if you want that. There is no paid bounty programme today, and we will not pretend otherwise.
What we do not claim
QuantGrid holds no security certification. We are not ISO 27001 certified, we have no SOC 2 report, and we have not been audited by a third party. When that changes we will publish the certificate and its scope here. Until then, everything on this page is a practice we operate rather than a badge somebody issued us, and you should read it that way.
QuantGrid is a technology platform for order replication. It is not registered with SEBI, does not provide investment advice, and does not guarantee any return. Trading in securities carries substantial risk of loss. You are solely responsible for your trades. Read the full compliance position, or check the FAQ for the questions people ask before signing up.
Get started
Start with one child account and a small multiplier
Link a single child account and check every replicated order against your broker's order book before you scale it up. The audit trail described on this page is the same record you can export, from the first order onwards.
Prepaid wallet · No lock-in, stop any time