Docs v2 · testnet

Architecture · Oracle design

Chainlink tells your contract the price. Novak tells it what happened.

Novak is an event oracle and dispute layer for tokenized stocks on Robinhood Chain. Facts about stock tokens — price at a time, corporate actions, trading halts, the Fed rate — are resolved once, can be challenged, and are served to every market from one read surface.

How an answer is decided

Three stages, each only reached if the one before it is challenged or fails to agree.

  1. 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.

  2. 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.

  3. 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

Whale / bribery attack on disputes

Novak

No governance token to buy

Why it holds

Disputes are decided by bonded resolver committees, not by token-weighted votes.

Property

Non-convergence

Novak

Event VOIDED → full refunds

Why it holds

Tier 2 failing to reach 66% voids the event; Voided propagates through every composite.

Property

Consumer coupling

Novak

Pull-only through the EventBus

Why it holds

Markets hold only Settlement / IEventBus — enforced by a regression test per consumer.

Property

Committee selection

Novak

Commit-reveal seed

Why it holds

Members commit and reveal salts; the seed is their XOR, so no single party picks the committee.

Property

Logic composition

Novak

On-chain EventComposer

Why it holds

AND / OR / NOT / BEFORE / WITHIN with canonical IDs, so every venue shares one composite answer.

What this means for a market

Your market never runs an oracle, posts a bond or arbitrates a dispute. It checks getAvailability(eventId): Pending → keep waiting, Available → settle on readOutcome, Voided → refund. See Integrate your market and Disputes & committees.