Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Real estate oracle

The real estate markets are NYC, USA, Austin, Atlanta, Boston, and MiamiBeach (market IDs 0 through 5). They use a daily oracle sourced from Parcl Labs.

How it works

  • Source. Parcl Labs publishes a daily real estate price index per market, computed from a rolling window of transaction data.
  • Cadence. One on-chain update per market per day.
  • On chain. Each accepted daily update becomes the market's active oracle value.

Between updates, the chain holds the most recent published value. The underlying transaction data does not exist at a higher frequency.

What goes on chain

FieldMeaning
oracle_priceThe published index value in USD, scaled to PRICE_EXPO = -8
last_oracle_timestampWall-clock at submission
oracle_valid_untilThe time after which the chain marks the current value as expired
oracle_statusActive while now < valid_until, Stale after that, or Halted when the update is unavailable

What you'll see in the UI

  • Index price: the latest oracle value. Doesn't change intraday.
  • A countdown next to the Index price showing when the current value expires.

The Index price is intentionally flat between updates. That's correct behavior. The housing market itself doesn't tick every second.

Mark price and triggers

For real estate liquidations and TP/SL triggers, the chain uses oracle_price directly. See mark price for the full routing.

A stop fires when a daily oracle update crosses its threshold. Order-book movement between oracle updates does not trigger it.

Halted updates

If oracle_status is Halted, do not increase exposure.

What happens if a daily update is delayed

  • The chain's oracle_price stays at the previous day's value.
  • After valid_until passes, oracle_status flips to Stale. Trading continues. The chain still has a price (yesterday's), but the validator marks it as expired.
  • On recovery, the next successful submission advances the date and oracle_status returns to Active. No state loss, no manual recovery needed.

See also

  • Mark price: how the oracle feeds into mark, liquidation, and trigger prices
  • Markets: real estate markets and their configuration