---
title: "Execution Modes for AI Trading Systems | Siebly"
description: "Reference for PUBLIC, READ_ONLY_PRIVATE, DRY_RUN_PRIVATE, DEMO, TESTNET, LIVE execution modes in Siebly trading-system guidance."
canonical: "https://siebly.io/reference/execution-modes"
---

# Execution Modes

Use one [EXECUTION_MODE](https://siebly.io/reference/glossary#execution-mode) switch for runtime safety boundaries. The goal is to implement live-capable code paths while keeping exchange writes disabled by default.

## Mode Contract

Allowed values are PUBLIC|READ_ONLY_PRIVATE|DRY_RUN_PRIVATE|DEMO|TESTNET|LIVE. Use this switch to select runtime capability; use runtime workflows for operational checks before any exchange write.

- [EXECUTION_MODE](https://siebly.io/reference/glossary#execution-mode) is the only execution-mode switch. Do not add parallel DRY_RUN, ENABLE_DEMO_TRADING, or ENABLE_LIVE_TRADING switches.
- [EXECUTION_MODE](https://siebly.io/reference/glossary#execution-mode)=DRY_RUN_PRIVATE is the default execution mode, where the implementation builds and logs final request objects and reconciliation decisions without submitting to the exchange. Always handle incoming account state events to keep internal account state in sync with exchange state, so the system is ready to execute live if requested by the user.
- [DEMO](https://siebly.io/reference/glossary#demo) and [TESTNET](https://siebly.io/reference/glossary#testnet) are write-capable only when the selected exchange supports the selected non-production venue.
- [LIVE](https://siebly.io/reference/glossary#live) is the production write-capable path. Implement it for order-capable prompts, but keep it disabled until explicit configuration and required runtime-workflow checks pass.
- Use [Runtime Workflows](https://siebly.io/reference/runtime-workflows) for startup readiness, recovery boundaries, and other operational checks.

## Dry Run Is Not Paper Trading

[DRY_RUN_PRIVATE](https://siebly.io/reference/glossary#dry-run-private) produces request records. [Paper Trading](https://siebly.io/reference/glossary#paper-trading) simulates execution side effects.

- Dry-run output is useful for verifying request shape, rounding, context registration, and submitter gates.
- Paper trading is useful for strategy evaluation and can model fills, positions, balances, fees, and PnL.
- A project can have both, but they are different runtime behaviors and should be named separately.
- Paper trading needs its own fill, balance, position, fee, and PnL model. It is separate from dry-run request planning and does not replace demo, testnet, or live exchange-state testing.

## Related Terms

- [EXECUTION_MODE](/reference/glossary#execution-mode): The single runtime switch that separates public, read-only, dry-run, demo, testnet, and live behavior.
- [EXECUTION_MODE=PUBLIC](/reference/glossary#public): Public-only mode. It uses no API keys, creates no private clients, and cannot build or submit exchange write requests.
- [Paper Trading](/reference/glossary#paper-trading): A local simulation mode that models intended orders, fills, balances, positions, fees, and PnL without real exchange writes.
- [Demo Trading](/reference/glossary#demo-trading): An exchange-supported simulated trading venue for testing order flows, private streams, and account-state handling when the selected exchange supports it.
- [Testnet](/reference/glossary#testnet-environment): An exchange-operated sandbox with fake funds in fake markets, useful for API and integration testing without risking real money.
- [EXECUTION_MODE=DEMO](/reference/glossary#demo): Write-capable mode for an exchange-supported demo or sandbox venue. It must fail closed if the selected exchange or product does not support that venue. Usually requires dedicated API keys that only work in the demo environment.
- [EXECUTION_MODE=TESTNET](/reference/glossary#testnet): Write-capable mode for an exchange-supported testnet venue. It must not silently route to production.
- [EXECUTION_MODE=DRY_RUN_PRIVATE](/reference/glossary#dry-run-private): The default order-capable mode. Private state may be read, and final order requests are built and logged without submitting to the exchange.
- [EXECUTION_MODE=LIVE](/reference/glossary#live): Production write-capable mode. It requires explicit configuration, scoped credentials, review gates, confirmation handling, recovery behavior, tests or fixtures, and operator acknowledgement.
