Skip to main content

Delayed

Market moves to DELAYED when the configured data source(s) cannot yield a safe, unambiguous outcome:
  • Provider data is unavailable or stale at the expected resolution window.
  • Provider data is ambiguous (e.g. event status not yet decisive).
  • When multi-source is configured, no strict majority across the configured providers.
  • The source reports the event cancelled or abandoned. The market waits in DELAYED until the platform decides whether to void it.

Your trading effect

  • New orders: rejected (status: REJECTED, code: market_not_open).
  • Existing locked balances: preserved.

Recovery

  1. The platform cross-checks a secondary source.
  2. If resolved → returns to PENDING_RESOLUTION.
  3. If no result can be established in reasonable time → the market is voided (below).

Void

Void is a payout-vector outcome. By default the oracle reports equal numerators for every outcome ([1, 1] on a binary market), so each outcome token redeems for an equal share of the collateral. The platform may instead void at a fair-price vector (derived from holders’ entry cost or from the last traded price) and may add a make-whole top-up, shown as makeWholeTopup on GET /api/me/positions and already included in payoutPreview. Redemption then follows that void payout vector through the normal redemption flow — partners do not need a separate refund flow. The amount returned to a holder is set by the void payout vector and their token holdings, not by the price they individually paid for those tokens. Grounds:
  • Event cancelled / abandoned with no standing result.
  • Resolution criteria insufficient / ambiguous.
  • Dispute review concluded void is the only safe outcome.

Approval

A void is a platform decision taken under its internal approval process. On-chain it is executed by the oracle’s admin role.

What you observe

  • Market status → VOIDED.
  • WebSocket: a status_changed frame with toStatus: "VOIDED" on market_lifecycle — there is no separate cancel event.
  • Users: positions redeem against the void payout vector through the vault. With auto-redeem on (the default) the platform redeems the refund for you within a few minutes, with no 1 USDC minimum; otherwise redeem with POST /api/me/positions/redeem, or Vault.redeemPositions / Vault.redeemPositionsNegRisk. Lock release follows redemption, not the original trade-cost basis.

Challenger bond on void

Returned in full. Void = “original proposal was wrong, but dispute was also not the correct path”.

Neg-risk groups

A neg-risk group is voided as a whole, keyed by its negRiskMarketId. Once an outcome has been proposed, the void takes two steps: the platform first queues it (queueVoidMarket), which freezes the group — convertPositions reverts with MarketVoidQueued — and then executes it (voidMarket). A queued void can be withdrawn if the result turns up after all. The standard void ([1, 1] on every outcome) is not possible once any position in the group has been converted: it reverts with CannotVoidAfterConversions. Such a group is settled with an outcome, or voided at set prices instead.

Emergency proposal clear

If the oracle signer posted a mistaken proposal (the id is the conditionId on binary markets, the negRiskMarketId on neg-risk):
A pending clear cannot be cancelled; it lapses only if the market is settled another way first. When it executes, the proposal is wiped — a challenger’s bond, if any, is refunded in full — and the platform proposes again, which opens a new challenge window. Nothing is required from you during the timelock. Used only when the original proposal was a bug, not a disagreement.