External markets#
An external market settles a source application's question instead of comparing two Pyth price snapshots. Read the source, question, closing time, and resolution policy before trading. The same YES/NO shares and Seesaw orderbook are used, but the evidence that determines the outcome is different.
What is supported#
The current Reclaim V1 policy supports reviewed Kalshi V3 conditions: definition and opening, final YES, final NO, final VOID, a left-open halt, and a close-time extension. A browsable source is not automatically a supported settlement source. Polymarket settlement is not supported by this policy.
<!-- S-01: update when additional reviewed external source policies ship -->Traders do not need oracle keys#
Buying, selling, and redeeming an existing external market do not require a Pyth or Reclaim API key. Generating a new Reclaim proof requires access to a proof producer and its credentials; a creator or relayer can instead import an already generated valid proof. Your trading wallet does not become a resolver by placing an order.
The registered resolver program submits the lifecycle transition through Seesaw's pinned verifier. An untrusted runner or keeper can transport proof bytes, but cannot choose the outcome. The on-chain policy derives the result from the authenticated source condition for this exact market.
What the proof does—and does not—establish#
Reclaim attestor signatures are verified onchain; Google TEE and underlying zkTLS verification remain offchain. The current policy uses the active, governance-approved attestor snapshot. It does not independently prove that the source application's statement is true.
Your risks therefore include the source's own errors or rule changes, proof availability, attestor compromise, and a stalled or paused resolver path. The oracle access guide describes the technical boundary. A public browsing API response is not a settlement proof.
Closing, delays, and extensions#
External markets can have a longer horizon than native price windows. The program permits a close horizon up to 365 days. A later close extension requires the authenticated extension condition and the program's timing checks; it is not an arbitrary creator edit. Read the latest accepted close time before trading.
<!-- src: program/src/constants.rs:231 MAX_EXTERNAL_CLOSE_HORIZON_SECONDS -->Closing stops new trading; it does not guarantee an immediate final outcome. If no accepted terminal proof arrives, permissionless neutral expiry becomes available only after the effective external expiry delay: the larger of the configured market-expiration window and the external minimum of 30 days. This is an eligibility threshold, not a promise that a keeper will submit at that time.
<!-- src: program/src/constants.rs:248 MIN_EXTERNAL_EXPIRATION_WINDOW_SECONDS --> <!-- K-01: update liveness wording when the keeper default path ships -->A halt blocks trading while the accepted halt condition applies; it is not a YES or NO result and does not pay out by itself. Distinguish halted, closed but unresolved, and a terminal result on the market detail page. Do not infer a result from a countdown, a missing price, or an indexer outage.
Payout and claiming#
| Accepted terminal result | YES | NO |
|---|---|---|
| YES / UP | Winning payout | No winning payout |
| NO / DOWN | No winning payout | Winning payout |
| VOID / neutral expiry | Half payout per share | Half payout per share |
VOID is represented by Seesaw's Expired outcome, not a separate outcome byte.
Rounding follows the same on-chain settlement rules as other binary markets.
Use Claiming Winnings after a terminal outcome, and
check both token shares and free funds. An unresolved market cannot be redeemed
as though the expected source result were already accepted.
See Settlement for payout and cleanup deadlines, Risks for liveness and custody risk, and Reclaim integration if you are building a creator or resolver.