DEVNETYou are on Solana devnet. Funds are not real. Behavior matches mainnet.

Data sources

Milky's oracle does not invent prices. Every quote is grounded in real-world market data sourced from professional pricing providers and combined through an aggregation layer that prioritizes conservative outputs.

Primary source: Alt.xyz

The production primary data source is Alt.xyz, a graded-card analytics platform with deep coverage of cert-level pricing data.

For each price request, the Milky backend asks Alt for:

  • The current value of the specific card at the specific grade, expressed in USD.
  • A confidence band (lower bound, upper bound) reflecting recent sale dispersion.
  • The graded-population statistics for the card (how many copies exist at each grade), which feeds into a confidence tier.
  • Recent sale history that the backend can use for sanity checks.

Alt's data is cert-resolved end-to-end: a PSA cert number maps to a specific canonical asset, and pricing is grade-specific. This is the exact granularity Milky needs for loan-by-loan pricing.

Optional second source: CardHedger

The aggregator layer (OracleAggregator) supports a second source that can be enabled per pool or globally. CardHedger is the canonical secondary integration today: it provides comparable cert-level pricing for sports and TCG cards.

When two sources are active, the aggregator:

  • Compares the two sources' headline FMVs.
  • Refuses to sign if the disagreement exceeds a configured tolerance (this protects against silently using a faulty source).
  • When they agree within tolerance, picks the lower of the two headline FMVs as the value to sign. This is a conservative posture — it tilts toward under-lending rather than over-lending.

In production today the system can be operated in single-source mode (Alt only) for collections where Milky has high confidence in Alt's coverage and lower confidence in CardHedger, or in two-source mode where both are active and the conservative-min behavior kicks in.

How the FMV is chosen within a source

Within Alt's response, the protocol could in principle anchor the signed FMV on different points of the confidence band:

  • The headline value (Alt's best-estimate current price).
  • The lower bound of Alt's confidence band (more conservative).
  • A moving average of recent values (smoother but more lagged).

Today's production behavior in single-source mode signs the headline value. The architecture supports anchoring on the lower bound and applying additional sanity bands; those are roadmap items as the protocol's risk tooling matures. The conservative LTV (default 70%) gives meaningful headroom regardless of which point on the band the FMV is anchored to.

What is not a data source today

For clarity:

  • eBay sold listings are referenced indirectly through Alt's data pipeline, but the protocol does not scrape eBay directly.
  • General Pyth / Switchboard feeds are not consulted for card prices. They are not a meaningful pricing surface for graded cards.
  • Manual price overrides are not part of the production quote path.

How LTV is determined

In addition to the FMV, the oracle picks an LTV in basis points for each quote. The chosen LTV is constrained from above by:

  • The global maximum LTV (currently 90%).
  • The pool's max_ltv_bps (often 70% in production pools).
  • The pricing source's confidence — for a card with a wide confidence band or thin recent sales, the oracle can drop the LTV below the pool ceiling.

The borrower sees the chosen LTV in the quote and can decide whether to proceed at that level.

When pricing is unavailable

If the oracle's data source returns no usable data — Alt is offline, the cert lookup fails, or the confidence is too low to safely lend against — the backend returns a PRICING_UNAVAILABLE error and the loan request is rejected at the off-chain layer. The chain never sees the request.

This is by design. The protocol prefers a clean rejection at the quote step over a degraded, possibly-incorrect signed price reaching the chain.