Risk Controls & Live Trading Guards
Every guard between a click and real money: caps by origin, kill switch and the 5-step path to live trading.
Live trading is the only place in Predite where a click spends real USDC. This page lists what stands between that click and Polymarket's order book: the switches that must be on, the caps on how much can leave your wallet, and the error you get when one stops you. Every guard runs on the server, in series, on every order — bots, copy trading and TWAP included — and none can be bypassed from the browser. They are all shown in Settings → Trading, in the card "Your safety guards".
Your path to real trading
The same page shows a 5-step checklist with your live progress. Each step is a real server gate:
- Create a bot.
- 10 paper trades — counted per bot, so a strategy forked from the Marketplace starts at zero too.
- Connect wallet — Polymarket credentials actually verified, not just an address pasted in.
- First real trade — one filled live order.
- Bot in live mode.
The switches, in order
The first gate that says no wins, and the order never reaches Polymarket:
- •Sandbox mode — if on, an *entry* becomes a paper position instead of an order. See Sandbox Mode.
- •Active Bot plan — re-checked inside the executor, not only at the API route, so a cancelled subscription cannot keep cron-driven bots or TWAP slices trading. Error:
E_PLAN. - •Master switch (platform) — a Predite-wide toggle. While off, orders are REFUSED (
E_MASTER_OFF) — they are not converted into paper trades. Turn on Sandbox mode if you want to simulate. - •Beta access on your account — real trading is opt-in per account. Without it:
E_BETA. - •Kill switch — your own emergency stop:
E_KILL_SWITCH. - •Automation flags — bots and copy each have a platform-level flag. Off means the order is refused (
E_BOTS_DISABLED,E_COPY_DISABLED) even when everything above is green.
Value caps, by origin
Caps depend on where the order came from, because a mistake in automation compounds and a mistake by hand doesn't:
- •Manual tickets — $500 per trade, $5,000 per rolling 24 hours (platform defaults).
- •Bots and copy — $25 per trade and $500 per day across the whole account by default; $100 per day per bot; at most 3 simultaneous open live positions per bot.
The first four numbers are defaults, not ceilings — you can raise or lower each one in Settings → Trading (see below). What never changes is that they are enforced server-side, in series, on every order.
Caps only block entries. A SELL that closes a position is never rejected by a volume cap — you can always reduce exposure, even after a cap is exhausted, even if your plan lapsed. And the additive caps are atomic: the daily-volume check and the order reservation happen in one transaction, serialized per profile, so two simultaneous orders cannot both read the same "used so far" and both squeeze through.
Per bot you can tighten further at creation: Max size caps each position's notional, and Max loss (USD) — auto-pause is a circuit breaker — when the bot's realized loss for the day reaches it, the bot stops opening positions until the next UTC day resets the counter. Blank means no loss limit.
Setting your own limits
All four value caps are yours to set. In Your safety guards, click Adjust limits, type the numbers and save. There is no ceiling — you decide how much of your money can move.
- •The four fields are Manual / trade, Manual / day, Bots+copy / trade and Bots+copy / day.
- •The daily cap must be greater than or equal to the per-trade cap. A daily budget smaller than a single trade would reject your first order; the form and the database both refuse it.
- •Raising *and* lowering take effect on the very next order. Lowering risk has no friction, and neither does raising it — the other guards (master switch, kill switch, plan, beta, idempotency) still run in series on every order.
- •Back to default restores the platform values shown above.
- •Every change is written to your audit log, and raises are flagged as high risk.
The per-bot daily cap follows your automation budget: it is a fifth of your bots+copy daily cap, with a floor of $100. At the default budget that is exactly the $100 it has always been — raise the budget and a single bot is no longer silently stuck at the old ceiling.
The kill switch
Settings → Trading → 🛑 Engage kill switch blocks every new live order on your account instantly, from any origin. Open positions are not closed — it stops new exposure, it does not liquidate. Toggling writes an audit entry and sends a notification. ✓ Disengage kill switch resumes, no code needed.
What a blocked trade looks like
Rejections carry a stable code and name the number that stopped you, e.g. *"Daily volume cap reached (used $412.00 of $500). Resets in <24h."* You may see E_PER_TRADE_CAP, E_GLOBAL_DAILY_CAP, E_BOT_POSITION_CAP, E_BOT_DAILY_CAP, E_BOT_OPEN_POSITIONS, E_BOT_DAILY_LOSS, E_BOT_PAPER (bot still in paper mode), E_BALANCE, E_MARKET_CLOSED, E_MASTER_OFF (live trading off platform-wide), and on Kalshi exits E_NO_POSITION / E_POSITION_UNKNOWN.
Every guard is fail-closed: if a limit cannot be verified — failed query, timed-out RPC — the order is refused, never let through. Manual trading is also rate-limited to 10 orders per minute, and identical orders repeated within 30 seconds collapse into one by idempotency, so a double click or a client retry cannot open the position twice.