Market Lifecycle
Every Strike market transitions through these states:
Open → Closed → Resolving → Resolved
↘ CancelledStates
Open
Orderbook accepts orders (place, cancel)
Batch clearing runs at configured intervals (~3s)
Traders can mint/merge outcome token pairs
Transition: automatically enters
Closedwhenblock.timestamp + batchInterval >= expiryTime
Closed
No new orders accepted — the final batch has cleared
Existing orders can still be cancelled (to free collateral)
Traders can still claim unclaimed fills from previous batches
Outcome token pair minting/merging still available
Transition: anyone submits a valid Pyth resolution → enters
Resolving
Resolving
Resolution has been submitted with signed Pyth price data
Finality gate: the protocol waits for economic finality (n+2 blocks on BSC) before finalizing
Challenge window: during this period, anyone can submit an alternative Pyth update; the contract deterministically picks the earliest valid
publishTimewithin the settlement windowTransition:
finalizeResolution()called after finality window → entersResolved
Resolved
Outcome is final (YES or NO)
Winning outcome tokens redeem 1:1 for collateral
Losing tokens are worthless
Resolver receives bounty from market creation bond
Cancelled
Triggered if no valid Pyth update is submitted within the maximum resolution window (24h)
Also triggered if confidence interval exceeds threshold at resolution time
All outcome tokens can be burned for collateral refund (1 YES + 1 NO → 1 collateral)
Market creation bond returned minus gas costs
Timeline (5-minute market, 3s batch interval)
Last updated