Skip to main content

Oracle V2 and price resolution

Oracle V2 infrastructure is deployed and its exchange collector is running. The September 12, 08:18 UTC readback returned zero registered V2 feed policies and zero undecided V2 market profiles. The existing BTC binary market (market

  1. continues to use its original V1 contract. Starting the V2 service does not convert an existing market or create a new one.

This deployment has not yet established a live V2 trade-to-cutoff-to-payout canary. Each new market needs its own committed policy before trading opens. The applicable version and terms come from the market's binding, not the version of a running worker.

Existing V1 market

At the readback, market 1 was open with price_barrier_v1 and the following unchanged terms:

TermBound value
ReferenceBTC; quote currency USDC
SourcesBinance, Kraken and Coinbase; all 3 required
ObservationMedian; 2000 ms polling; 1 confirmation sample
Triggergte, price 100000
Cutoff2027-01-01T04:59:59Z
Degraded policyresolve_no

This is a barrier contract: a qualifying earlier threshold hit can latch YES. Its legacy degraded policy must not be interpreted as V2's missing-evidence policy. Read the live binding before trading; this table is a dated snapshot.

V2 exchange profile: price at expiry

The deployed exchange implementation supports new BTC/USD markets with at_expiry_gt: is the reference price strictly above the published strike at the committed cutoff? Earlier threshold hits do not decide this rule. Equality with the strike is NO.

The exchange profile combines:

  • Coinbase BTC/USD midpoint;
  • Kraken BTC/USD midpoint;
  • Binance BTC/USDT midpoint, converted to USD using an explicit Kraken USDT/USD midpoint.

It computes the equal-weight arithmetic mean of the three USD-normalized BTC midpoints, using integer micro-USD arithmetic. This is not the legacy V1 median. All three BTC sources and the required FX conversion must satisfy the bound policy. The signed collector evidence is validated and durably recorded by Core.

Each policy commits the source identity, collector identity, strike, observation window, cutoff, recovery deadline, sample grid, freshness/spread/disagreement limits and exposure cap before opening. Candidate limits in engineering tests are not automatically the terms of a live market. Display the actual policy and its hash to the trader.

Only quotes observed and received by the cutoff can contribute to the cutoff price. The later recovery deadline allows handling of retained evidence and conflict detection; it does not authorize using a newer post-cutoff price. Finalization waits until after that committed deadline.

Outcomes and payout

For the V2 exchange at_expiry_gt profile:

DecisionYES payout per shareNO payout per share
Valid cutoff price above strike1 USDC0 USDC
Valid cutoff price at or below strike0 USDC1 USDC
Required evidence missing or conflicting at finalization (INVALID)0.50 USDC0.50 USDC

INVALID uses deterministic rounding carry. It does not refund each trader's individual purchase price. The oracle path has no economic-dispute resolver fee; ordinary trading fees remain governed by the market's fee terms.

Resolution commits the outcome. The existing persistent settlement worker then processes positions and credits account balances. A resolved state is not proof that every account has already been paid, and an account credit is separate from final on-chain withdrawal. There is no promise of payout at the exact cutoff millisecond. See Settlement.

Client integration

EndpointUse
GET /api/v1/public/markets/{market_id}Discover instrument type and its published resolution binding
GET /api/v1/public/markets/{market_id}/oracleRead the legacy price-oracle view for applicable V1 markets
GET /api/v2/public/markets/{market_id}/oracleRead a bound V2 market's durable policy and progress view
GET /api/v2/public/oracle/feeds/{hash}Read the latest durable report and evaluated health for a registered V2 feed

A V2 market view exposes liveHealth, referencePrice when available, priceObservedAtMs when available, and healthAsOfMs, alongside its durable policy/progress data. A display price is not itself the final decision. A V2 market without a durable view returns 404; an unavailable report or failed read may return 503. A V1 market does not gain a V2 view merely because V2 is deployed.

Only poll a price-oracle endpoint for markets with the corresponding binding. Prediction markets using economic dispute resolution and spot markets do not automatically have price-oracle data. Clear the previous market's displayed price when changing market or when the binding does not apply.

Market cutoffs are UTC instants. Convert a requested Vienna time using Europe/Vienna and its date-specific daylight-saving offset before binding.

Market creation and operations

New binary markets follow the closed → policy bound → open lifecycle. The bind and open commands require their canonical terminal receipts; an admission ACK alone is insufficient. Existing resolution contracts cannot be silently converted to V2.

Policy administration and report ingestion are separate privileged capabilities. They are not trader credentials or public market-creation shortcuts. Durable collector buffering supports retry after interruptions, but cannot reconstruct a cutoff observation that was never recorded. Missing required evidence follows the bound INVALID rule.

Prediction-market proposals, bonds and challenges remain described in Resolution.