Explanation

Forks and resolution in Trading

A pair closes when its market can no longer be traded safely, but it never traps a position. This page explains which events close it and what a holder does next.

What closes a pair

Swaps, initialization, and added liquidity close at question end, when the pool is non-operational or awaiting continuation, when its universe has forked, or when the forker exposes a final outcome. LP removal deliberately has none of those guards.

After a fork

  1. LP → Parent pair: removeLiquidity()
  2. Parent pair → LP: parent YES + NO
  3. LP → ShareToken: migrate(fromId, chosen outcomes)
  4. ShareToken → LP: selected child shares
  5. Wait until migration and any Truth Auction return the child pool to Operational
  6. LP → Factory: createPair(exact child pool)
  7. Factory → LP: isolated child pair
Carrying liquidity across a fork. Every step is the LP's own decision; nothing here happens automatically.

A fork does not select a branch or migrate LP. Parent and child pools may share one ShareToken contract, but they have different universe-specific token IDs and different pair addresses. Handle a universe fork gives the step-by-step procedure.

After resolution

  1. Pair → Forker: getQuestionOutcome(pool)
  2. Forker → Pair: current YES / NO / INVALID outcome
  3. Pair → Pair: swaps and additions closed
  4. Holder → Pair: removeLiquidity remains available
  5. Pair → Holder: raw YES + NO
  6. Holder → SecurityPool: redeemShares() for the winning token
  7. SecurityPool → Holder: current collateral value
Settling after resolution. The pair only closes; value is redeemed at the SecurityPool, never at the pair.

On INVALID, the matching wallet INVALID is the settlement insurance. Pair YES and NO fee growth creates no INVALID-branch redemption value. Handle resolution gives the procedure.