The settlement layer for protocols that need trustworthy sports outcomes. Cross-verified from multiple independent sources. Assertion-delayed. Permanently archived.
.,,,,,,,,.
.,;:::::::::::;,.
.,:::::;;;;;;;;;;:::,.
.:::;;;;;;;;;;;;;;;;;:::.
.:::;;;;;;;;;;;;;;;;;;;;:::.
:::;;;;;;;;;;;;;;;;;;;;;;;:::
:::;;;;;;;;;;;;;;;;;;;;;;;:::
.:::;;;;;;;;;;;;;;;;;;;;:::.
.:::;;;;;;;;;;;;;;;;;:::.
.,:::::;;;;;;;;;;:::,.
.,;:::::::::::;,.
'''''''''
No consensus tricks, no committee voting. Multiple independent sources must agree byte-for-byte or the assertion doesn't post.
Pre-game consensus lines aggregated from multiple market sources on a tiered schedule. Post-game box scores from independent stats providers.
Consensus linesEvery stat is cross-referenced across multiple independent providers. Mismatch in a single column blocks the entire game from asserting.
Hard gate · No partial dataAfter a mandatory 60-minute delay, raw box scores are pushed to Arweave and stats ABI-encoded into a bonded UMA OOV3 assertion.
Arweave · UMA OOV3Consumers query the oracle contract for a given event. Pay a small fee in USDC and receive verified stats on-chain.
USDC.e · Per-resolutionMultiple independent providers must agree on the result exactly, or the assertion doesn't post. No single point of trust, no quorum fudging.
Built on Optimistic Oracle V3. Bonded assertions, two-hour challenge window, economic finality — not committee votes.
Raw box scores archived to Arweave. Every finalized stat carries a verifiable evidenceHash linking on-chain value to source data.
We publish consensus lines — point values, market coverage — across every game we watch. Read them without a fee. Odds themselves are a separate service.
No fees, no subscriptions, no API keys. Read verified stats directly from the oracle contract. Sustained by donations, not seat counts.
Not gated by any market-maker whitelist. Integrate directly. Works with Polymarket-adjacent, Overtime, Azuro, or your own venue.
PropsOracle is open infrastructure. No fees, no subscriptions, no API keys. If it's useful to your protocol, contributions keep it running.
Start a continuous stream — one transaction, cancel anytime.
Open Superfluid →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 →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.
Leagues go live only after full cross-source coverage is verified. No vaporware.