Skip to content
Browse documentation

Prices and the oracle

Yahoo Finance supplies the price. The server signs a short-lived check, and the onchain oracle verifies it.

Price source

The feed reads the configured USD stock from Yahoo Finance. It checks the ticker, exchange, instrument type, currency, regular-session price, source timestamp and trading schedule before signing.

Source time is Yahoo Finance's timestamp for its regular-session price. It is not the time you opened the page or necessarily an official closing-auction price. The displayed timestamp remains unchanged when an old price is still valid during a closure.

Freshness and closed markets

The server attempts a provider refresh every ten minutes and caches the result. Loading pages reads that cache rather than spending a new provider request for each visitor.

A signed check lasts at most fifteen minutes. When the trading schedule indicates an open market, the source observation must also be less than one hour old. The check expires at whichever limit comes first.

When the trading schedule indicates a closed market, an older last-reported price is accepted only alongside a fresh provider check. Reusing a cached price cannot refresh that check's timestamp.

A closed-market check near a weekday 9:30 a.m. New York opening expires at that boundary. This accounts for daylight saving time and is conservative on holidays. An outdated schedule is treated as open during ordinary weekday trading hours. This can pause purchases on a holiday until the provider supplies an updated schedule.

Signing and publication

The signed message binds the market identifier, price, source time, check time, expiry, market-open flag and signer epoch. Its EIP-712 domain binds it to this oracle contract and chain.

Anyone can submit a valid signature to the oracle. The buy flow publishes a newer check when needed; the Admin page also has a Publish signed price action. Publication is an onchain transaction paid for by the publishing wallet. The signing server does not submit funded transactions.

The oracle rejects invalid signatures, expired checks, backward timestamps and conflicting prices for the same source observation. The oracle owner can rotate the signer; the new epoch invalidates the previous epoch's quotes.

When a quote is unavailable

An unavailable or expired quote disables buying. It does not cancel the market, change pre-tokenized stock balances or move vault funds. The interface refreshes market data every thirty seconds and stops using a check when it expires.

Wait for the next successful feed check or reload the page. An administrator cannot type a replacement price into the current interface. Claims and refunds distribute frozen balances and do not need a new stock-price quote.

Alchemy provides the app's chain RPC reads. It is not the stock-price provider. The oracle verifies the authorized signature, not Yahoo Finance independently, so the provider and signer remain trust dependencies.