System
Safeguards & Rules
Two-tier rules engine protecting every trade on every exchange.
Every trade passes through a two-tier rules engine before execution. No order can reach any exchange (Kalshi or Polymarket) without passing both tiers. The system is deterministic — no AI judgment in the validation layer, only hard programmatic checks.
Tier 1 — Per-Agent + Global Rules
Nine constraints are checked against both the agent's per-agent config and the account's global rules. When both define a limit, the more restrictive value wins.
| Rule | Default | Description |
|---|---|---|
| Max trade size | $100 | Rejects trades exceeding this cost |
| Capital per agent | $2,000 | Max capital a single agent can use |
| Daily loss limit | $500 | Pauses agent if daily losses exceed this |
| Min confidence | 60% | Rejects trades below this confidence score |
| Allowed categories | All | Whitelist of tradeable market categories |
| Blocked tickers | None | Blacklist of specific market tickers |
| Max positions | 10 | Concurrent open position limit |
| Duplicate prevention | On | Blocks same agent from opening duplicate position |
| Opposing position | Blocked | Prevents YES and NO on same market |
Tier 2 — Account-Level Validation
Account-wide checks that apply across all agents. These are tracked per-environment — training and live limits are counted independently.
| Rule | Default | Description |
|---|---|---|
| Max trades / day | 50 | Daily cap across all agents combined |
| Global daily loss | $500 | Pauses all trading if total losses exceed this |
| Max trades per market | Unlimited | Limits total trades on any single market |
| Cooldown | 0 hours | Min time between same-market trades |
| Active hours | Always | Restrict trading to specific UTC hours |
| Daily AI budget | $50 | Max daily LLM API spend across all agents |
Configuring Rules
All rules are configurable from Settings → Safeguards. Changes auto-save automatically and take effect on the next validation cycle — no restart or redeployment needed.
How Conflicts Resolve
- Size limits — MIN(agent value, global value). The lower limit wins.
- Confidence floors — MAX(agent value, global value). The higher requirement wins.
- Category filters — Agent categories OR global categories apply.
- Blocked tickers — Global only (not configurable per-agent).
Rejected trades are visible in your trade history with the exact rule that blocked them and an explanation. Use this to tune your settings.