Architecture · Oracle design
Chainlink tells your contract the price. Novak tells it what happened.
How an answer is decided
Three stages, each only reached if the one before it is challenged or fails to agree.
- Stage 1
Resolver quorum
EventRegistry
Authorized resolvers each submit an outcome plus an evidence hash. When the quorum submits the identical payload, it becomes the proposed outcome and the dispute window opens.
- Stage 2
Bonded committees
DisputeManager
Anyone can dispute by posting a bond. A Tier-1 committee (≤7 resolvers) needs 66% agreement; failing that, Tier 2 (≤15) decides. Members are drawn by commit-reveal and bonded.
- Stage 3
VOID, never guess
EventBus → every market
If Tier 2 can't converge either, the event is permanently Voided. Every market reading it refunds — range markets redeem at 1/N per share. No token vote ever picks an answer.
Side by side
How Novak compares with a price oracle and an optimistic oracle with token voting is laid out on the Architecture page, next to the five layers.
Security properties
Property
Novak
Why it holds
Property
Novak
Why it holds
Property
Novak
Why it holds
Property
Novak
Why it holds
Property
Novak
Why it holds
| Property | Novak | Why it holds |
|---|---|---|
| Whale / bribery attack on disputes | No governance token to buy | Disputes are decided by bonded resolver committees, not by token-weighted votes. |
| Non-convergence | Event VOIDED → full refunds | Tier 2 failing to reach 66% voids the event; Voided propagates through every composite. |
| Consumer coupling | Pull-only through the EventBus | Markets hold only Settlement / IEventBus — enforced by a regression test per consumer. |
| Committee selection | Commit-reveal seed | Members commit and reveal salts; the seed is their XOR, so no single party picks the committee. |
| Logic composition | On-chain EventComposer | AND / OR / NOT / BEFORE / WITHIN with canonical IDs, so every venue shares one composite answer. |
What this means for a market
getAvailability(eventId): Pending → keep waiting, Available → settle on readOutcome, Voided → refund. See Integrate your market and Disputes & committees.