Safety Model
Trading guardrails
tossctl applies separate execution policies to live trading, settings, and paper trading. They reduce unintended submissions, but cannot guarantee against wrongly approved orders or losses.
Disabled by default
All trading actions are off after install. Orders, cancels, and amends fail unless you
explicitly allow them in config.json.
{
"trading": {
"place": true,
"sell": true,
"allow_live_order_actions": true
}
}- Without
place, no order can be placed. - Selling requires the additional
sellgrant (the user scopes "buy-only / include sell"). allow_live_order_actionsis the master kill switch for every live-account order.
Two-step execution gate
A live trade requires both:
tossctl order place --symbol TSLA --side buy --qty 1 --price 250 \
--execute --confirm 'PREVIEW_CONFIRM_TOKEN'- Order commands do not submit without
--execute. - Replace
PREVIEW_CONFIRM_TOKENwith the fresh preview token:order previewfor place, or the cancel/amend command's own preview.
Always preview first
order preview validates order intent, quantity, price, and estimated value without sending an order. Estimates do not guarantee fills or final fees.
tossctl order preview --symbol TSLA --side buy --qty 1 --price 250Agents must follow preview → user confirmation → place.
Submission routes and uncertain outcomes
Regular CLI orders select one official or WTS backend. MCP/ops live orders and all conditional orders are official-only. A failure never triggers a cross-backend resubmission. WTS history reconciliation is best-effort; inspect unknown or pending outcomes before retrying the same order.
Settings and paper trading
Watchlists, price alerts, hidden holdings, and allowed-IP changes preview by default. Execution requires approval for the current request and a state-bound confirmation token. Irreversible actions require an additional acknowledgement.
US-options paper trading is exposed only with experimental.paper_trading=true. Simulation writes use a separate simulation_execute policy and --execute, not live config or tokens. paper order live-preview creates a live preview but never submits an order. Do not treat server-rejected initialization, education, or orders as approved.
Market symmetry
KR and US trading use the same gate. (A KR order is no riskier than a US one, so the old asymmetric option was removed.)
Privacy
- State files and QR images use owner-only
0600; state directories use0700on supported operating systems. doctor --reportJSON masks home paths automatically.- Default
monitorsummaries omit raw account responses. Review custom webhooks, logs, and data sent to AI hosts separately.
Agent notes
Follow the rules in the AI Agent Guide — especially no gate bypass, no real data exposure, and preview-before-place.