rave-trading docs
Local

Quote Testing

Soft vs firm quotes and the three safety labels — quote-only, execution-preparatory, blocked.

The quote tester is the primary trader workflow. It supports two request shapes — soft (indicative) and firm (carries ABI-encoded calldata). Track A adds an explicit safety label to every firm-quote attempt so the UI never silently slides from "testing" to "preparing to execute".

Soft vs firm

  • Soft quotePOST /api/v1/quotes/soft. Price, spread, and notional only. No calldata, no on-chain validation. Safe to request freely.
  • Firm quotePOST /api/v1/quotes/firm. Includes calldata, settlement_address, chain_id, and a valid_until timestamp. On-chain state is validated before issuance (issuance hours, oracle freshness, vault balance for vault-buy path).

Three safety labels

  • quote-only — simulated in preview environments. The engine returns a quote payload but the console never touches execution calldata paths.
  • execution-preparatory — staging default. The full firm quote is prepared and visible in the UI, but the console does not submit the transaction.
  • blocked — the environment, role, or feature flag forbids any firm-quote attempt. The UI surfaces the reason string from the engine's capability response.

Environment matrix

EnvironmentSoft quotesFirm quotesExecution submission
PreviewSimulatedquote-onlyNever
StagingBounded (real engine, test accounts)execution-preparatoryNever
ProductionLiveGated on FIRM_QUOTES_PROD_ENABLEDExecutor service, not the console