LIVE NETWORKPOLYGON BLOCK60,847,213 ASSERTIONS 24H342 UMA OOV3CONNECTED
[ 01 ] B2B Sports Oracle · UMA OOV3 · Polygon + Base

Verified player
stats, on-chain.

The settlement layer for protocols that need trustworthy sports outcomes. Cross-verified from multiple independent sources. Assertion-delayed. Permanently archived.

X: 000 Y: 000 Z: 000
        .,,,,,,,,.
     .,;:::::::::::;,.
   .,:::::;;;;;;;;;;:::,.
  .:::;;;;;;;;;;;;;;;;;:::.
 .:::;;;;;;;;;;;;;;;;;;;;:::.
 :::;;;;;;;;;;;;;;;;;;;;;;;:::
 :::;;;;;;;;;;;;;;;;;;;;;;;:::
 .:::;;;;;;;;;;;;;;;;;;;;:::.
  .:::;;;;;;;;;;;;;;;;;:::.
   .,:::::;;;;;;;;;;:::,.
     .,;:::::::::::;,.
        '''''''''
          
ORACLE · T+00:00:00
MLB · NBA · NFL · NHL · EPL · LaLiga · Serie A · Bundesliga · Ligue 1 · MLS
[ 02 ] How it works

Four steps. One hard gate.

No consensus tricks, no committee voting. Multiple independent sources must agree byte-for-byte or the assertion doesn't post.

STEP 01

Ingest

Pre-game consensus lines aggregated from multiple market sources on a tiered schedule. Post-game box scores from independent stats providers.

Consensus lines
STEP 02

Verify

Every stat is cross-referenced across multiple independent providers. Mismatch in a single column blocks the entire game from asserting.

Hard gate · No partial data
STEP 03

Assert

After a mandatory 60-minute delay, raw box scores are pushed to Arweave and stats ABI-encoded into a bonded UMA OOV3 assertion.

Arweave · UMA OOV3
STEP 04

Serve

Consumers query the oracle contract for a given event. Pay a small fee in USDC and receive verified stats on-chain.

USDC.e · Per-resolution
[ 03 ] Why Props Oracle

Built for protocols. Built to be correct.

Cross-source hard gate

Multiple independent providers must agree on the result exactly, or the assertion doesn't post. No single point of trust, no quorum fudging.

UMA-secured finality

Built on Optimistic Oracle V3. Bonded assertions, two-hour challenge window, economic finality — not committee votes.

Permanent evidence

Raw box scores archived to Arweave. Every finalized stat carries a verifiable evidenceHash linking on-chain value to source data.

Pre-game lines, free

We publish consensus lines — point values, market coverage — across every game we watch. Read them without a fee. Odds themselves are a separate service.

Free to integrate

No fees, no subscriptions, no API keys. Read verified stats directly from the oracle contract. Sustained by donations, not seat counts.

Standalone

Not gated by any market-maker whitelist. Integrate directly. Works with Polymarket-adjacent, Overtime, Azuro, or your own venue.

[ 04 ] Support

Free to use. Built to last.

PropsOracle is open infrastructure. No fees, no subscriptions, no API keys. If it's useful to your protocol, contributions keep it running.

USDC · One-time
Polygon Base
USDC · Recurring
Superfluid
Stream USDC monthly

Start a continuous stream — one transaction, cancel anytime.

Open Superfluid →
Polygon · USDCx
[ 05 ] For developers

One call. No fee. Verified stats.

Integrate in a single Solidity call. The access controller ABI-decodes the UMA claim on-the-fly and returns stat arrays in oracle_player_id order. No fee, no approval, no allowlist.

DNP players are flagged with -1. Every finalized result carries an Arweave evidenceHash.

Full integration guide →
SOLIDITY · 0.8.24 Example
import { IOracleAccessController } from "@props-oracle/interfaces";

IOracleAccessController oracle = IOracleAccessController(0x...);

// Free to read. No approval, no fee, no allowlist.
(uint256[] memory statTypes,
 int256[]  memory statValues) =
    oracle.getVerifiedPlayerStats(canonicalEventId);

// statValues in oracle_player_id order.
// DNP = -1. Finalized by UMA. Archived on Arweave.
[ 06 ] Roadmap / Status

Transparent build state.

Leagues go live only after full cross-source coverage is verified. No vaporware.

MLB Live Polygon testnet
NBA In progress Q3 2026
WNBA In progress Q3 2026
NCAA In progress Q3 2026
NFL Planned Q3 2026
NHL Planned Q4 2026
Soccer · Top 5 + MLS Planned Q4 2026
Base mainnet Pending Q4 2026
[ 07 ] FAQ

Questions, answered plainly.

01 Is this a betting product? +
No. PropsOracle is B2B infrastructure. No user-facing interface, no bets, no betting pool. Protocols integrate our contracts to settle markets using verified stats.
02 Why UMA instead of Chainlink? +
UMA's Optimistic Oracle uses bonded assertions with an open challenge window, which fits player-prop resolution better than push-feeds. Assertions are economic: if we post a wrong stat, anyone can dispute and take our bond. Chainlink's model is built for price feeds, not discrete post-game outcomes.
03 What happens if your data sources disagree? +
We don't assert. The hard gate is non-negotiable — cross-source mismatch on any stat blocks the entire game. The relayer logs the discrepancy and operators investigate manually. Better late-and-correct than on-time-and-wrong.
04 Do I have to pay to read stats? +
No. Reading stats from the oracle is free — no fee, no approval, no allowlist. Consumer contracts call getVerifiedPlayerStats(canonicalEventId) directly. If PropsOracle is useful to your protocol, the support section has a USDC donation address and a Superfluid stream option.
05 What's the latency from game end to on-chain stat? +
Mandatory 60-minute delay after game final, plus UMA's 2-hour challenge window. Finalized stats are available roughly T+3 hours after the last play. This is intentional — fast data and wrong data are indistinguishable downstream.
06 How accurate are the results? +
Assertions are expected to be correct at challenge-window close ~99% of the time across supported leagues, based on stat-stabilization patterns roughly 4 hours after game completion (2-hour relayer delay plus 2-hour UMA challenge window). Per-league variance exists — see the detailed breakdown for per-sport specifics.
07 What if a stat is corrected after the challenge window closes? +
The assertion is final and on-chain. UMA does not reopen finalized assertions, and stat corrections arriving after the challenge window closes do not change the posted result. Consumer protocols should grade against the stats asserted at finalization.
08 How are official scorer changes handled? +
The 2-hour relayer delay captures the majority of immediate scoring adjustments, and cross-source validation catches most remaining discrepancies before posting. If an official scorer later reclassifies a stat after the challenge window closes, the on-chain value stands. This is the dominant driver of residual variance in sports with active post-game scoring review.
09 How are DNPs (Did Not Play) handled? +
A player absent from the final box score is marked DNP in the assertion using a sentinel value. Consumer contracts interpret DNPs per their own rules — typically as a push. A player who starts and exits mid-game due to injury is not a DNP; their actual accumulated stats are posted.
10 What happens with rain-shortened or called games? +
Each league's official "complete game" rules apply. Games that meet the league's official threshold (for example, MLB games called after 5+ innings with a winner) are asserted normally on whatever stats accumulated. Games that don't meet the threshold are not asserted, and consumer contracts handle the unresolved event per their own logic. Postponed games are not asserted until rescheduled and completed.