FirstSandboxOrderProcedure
Smallest valid sandbox quantity · SANDBOX_EXECUTION = TRUE · LIVE_EXECUTION = FALSE
BLOCKED — INFRASTRUCTURE REQUIRED
This procedure requires: environment confirmed DEMO/SANDBOX · account authenticated · mapping verified · risk test configured · execution lease active · Sentinel/local safety state acceptable.
Procedure Steps
All steps must pass in sequence. Any BLOCKED step halts the procedure.
Verify all prerequisites: infrastructure, credentials, lease, environment classification.
Confirm account is authenticated and metadata is current.
Verify account environment is DEMO or SANDBOX from authoritative metadata. LIVE/UNKNOWN → BLOCKED.
Confirm AxisInstrumentId mapping exists and is VERIFIED or MANUAL_VERIFIED.
Validate InstrumentSpecificationHash against current broker specification. Detect material drift.
Normalize quantity through PositionNormalizationEngine: min/max/step/notional/margin. Use smallest valid sandbox quantity.
Run full Risk Command pipeline. Veto → broker mutation call count = ZERO. P0.
Acquire valid ExecutionLease with monotonic fencing token. Reject stale/old workers.
Submit to broker sandbox adapter via secure outbound channel.
Confirm broker acknowledged. Capture broker order ID, timestamp, initial state.
Capture fill price, quantity, spread, slippage, latency, broker IDs. Only call BROKER FILL if broker actually filled.
Sync position state from broker. Verify against local state.
Close or cancel the test position. Capture broker confirmation.
Compare AXIS state with broker truth. Query orders, positions, history, account state.
Generate ExecutionReceipt with all evidence. SANDBOX_EXECUTION = TRUE, LIVE_EXECUTION = FALSE.