Lifecycle
Create
List
Cancel
Reasons an intent can be rejected
The server runs a gate evaluator on every intent before persisting:RISK_GATE_FAIL— exceeds per-market or per-day risk limits.STALE_PRICE— the price you specified is no longer reachable.INSUFFICIENT_BALANCE— Kalshi/Polymarket balance below what the order would require.CATEGORY_BLOCKED— your config excludes the market’s category (e.g., sports).THESIS_MISMATCH— the intent’s edge doesn’t match the linked thesis’s direction.
Execution
Once pending, intents are picked up by:- portfolio-autopilot ticks if
execution_mode = 'live'. - manual execution via the web terminal trade ticket.
- direct CLI via
sf buy/sf sell, which bypass the intent layer entirely.
Next steps
Intents API
Endpoint shapes for create / list / cancel.
Risk gates
The pre-trade checks every intent runs through.
Thesis lifecycle
Link intents to theses for automated edge tracking.