NOVAK:Built on Robinhood Chain — the event layer for tokenized stocks.
Dispute layer for tokenized stocks

Resolve it right,
or refund it all.

Splits, dividends, trading halts, price-at-close conditions: Novak turns what happens to Robinhood Stock Tokens into finalized on-chain facts — resolved once by independent resolvers, disputable by bonded committees (never a token vote), composable with AND / OR / WITHIN, and read by every lending market, perp and prediction market on the chain.

Novak Mobile Display
01 / DISPUTE GUARDTwo-Tier Ladder
02 / COMPOSITIONAND / OR / WITHIN
03 / READ PATTERNPull-based EventBus
04 / SAFETY FLOORVOID State Hard Floor

The idea

A different shape of question

Chainlink answers (a Novak data source)

“What is NVDA's price right now?”

A continuous number, 24/5, holding the last price when markets close. Essential — and Novak resolvers read it directly. But a price feed can't say why the number jumped, or whether trading stopped.

Novak answers

“Did NVDA split this week — and was it trading above $X within 24h of it?”

A discrete, finalized fact with the time it happened — kept as a standing object with a canonical ID that any market or lending protocol reads, without re-resolving anything or writing its own oracle glue.

The gap on Robinhood Chain

Prices are covered. What happens to the stock isn't.

Robinhood Chain ships Chainlink price feeds for its stock tokens. Everything else a lending market or derivative needs to stay solvent through a split or a halt is left to each integrator. Hover a point to see the gap, and how Novak closes it.

Splits & dividends

New York · NYSE / Nasdaq

Splits & dividends

The gap · Chainlink feeds carry no corporate-action calendar. A split shows up only as an ERC-8056 UIMultiplierUpdated log that every lending market must watch and handle itself.

Novak · rh.corporate-action.v1 resolves “did the multiplier change ≥ X in this window” once, from the token’s own logs.

rh.corporate-action.v1See it live
“Chainlink does not provide corporate-action calendar data or automated pause triggers; pause timing and multiplier updates are coordinated by Robinhood.”
Chainlink docs — Robinhood Tokenized Equities
“oraclePaused() … is advisory and not enforced on-chain.”
Robinhood Chain docs — Oracles & Price Feeds
“Subscribe to UIMultiplierUpdated events … handle multiplier changes in lending collateral calculations.”
Robinhood Chain docs — Building with Stock Tokens

The Idea

A composable event primitive for Robinhood Chain

Chainlink gives Robinhood Chain prices. Novak resolves the facts around them — corporate actions, halts, price-at-time conditions — once, and exposes them as standing, composable events.

NVDA_MULTIPLIERFINALIZED
NVDA multiplier +0.0775%
rh.corporate-action.v1

ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.

NVDA_GTE_224FINALIZED
NVDA ≥ $224 at T
chainlink.price-at.v1

Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.

TSLA_OVERNIGHTOPEN
TSLA not tradable overnight
rh.trading-status.v1

Snapshot of Robinhood's asset registry, agreed by a resolver quorum.

AAPL_SPLITOPEN
AAPL split-size action
rh.corporate-action.v1

minChangeBps ≥ 5000 separates real splits from dividend reinvestment.

FED_BEFORE_EARNINGSCOMPOSED
Fed cut BEFORE NVDA earnings
composite · BEFORE

Two facts, one canonical ID — every market composing them reads the same answer.

NVDA_MULTIPLIERFINALIZED
NVDA multiplier +0.0775%
rh.corporate-action.v1

ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.

NVDA_GTE_224FINALIZED
NVDA ≥ $224 at T
chainlink.price-at.v1

Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.

TSLA_OVERNIGHTOPEN
TSLA not tradable overnight
rh.trading-status.v1

Snapshot of Robinhood's asset registry, agreed by a resolver quorum.

AAPL_SPLITOPEN
AAPL split-size action
rh.corporate-action.v1

minChangeBps ≥ 5000 separates real splits from dividend reinvestment.

FED_BEFORE_EARNINGSCOMPOSED
Fed cut BEFORE NVDA earnings
composite · BEFORE

Two facts, one canonical ID — every market composing them reads the same answer.

NVDA_MULTIPLIERFINALIZED
NVDA multiplier +0.0775%
rh.corporate-action.v1

ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.

NVDA_GTE_224FINALIZED
NVDA ≥ $224 at T
chainlink.price-at.v1

Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.

TSLA_OVERNIGHTOPEN
TSLA not tradable overnight
rh.trading-status.v1

Snapshot of Robinhood's asset registry, agreed by a resolver quorum.

AAPL_SPLITOPEN
AAPL split-size action
rh.corporate-action.v1

minChangeBps ≥ 5000 separates real splits from dividend reinvestment.

FED_BEFORE_EARNINGSCOMPOSED
Fed cut BEFORE NVDA earnings
composite · BEFORE

Two facts, one canonical ID — every market composing them reads the same answer.

NVDA_MULTIPLIERFINALIZED
NVDA multiplier +0.0775%
rh.corporate-action.v1

ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.

NVDA_GTE_224FINALIZED
NVDA ≥ $224 at T
chainlink.price-at.v1

Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.

TSLA_OVERNIGHTOPEN
TSLA not tradable overnight
rh.trading-status.v1

Snapshot of Robinhood's asset registry, agreed by a resolver quorum.

AAPL_SPLITOPEN
AAPL split-size action
rh.corporate-action.v1

minChangeBps ≥ 5000 separates real splits from dividend reinvestment.

FED_BEFORE_EARNINGSCOMPOSED
Fed cut BEFORE NVDA earnings
composite · BEFORE

Two facts, one canonical ID — every market composing them reads the same answer.

Canonical Standing Facts

Finalized once in the EventBus, then read by every downstream app as a permanent on-chain reference.

Explore event store
  • Committee drawn by commit-revealnow7 bonded resolvers · seed = XOR of revealed saltsTIER 1
  • Challenger bond posted2s ago0.0005 ETH bond — a Tier-1 committee is drawnBONDED
  • Outcome proposed4s ago2/2 resolvers agree · NVDA ≥ $230 at T → YESQUORUM

Two-Tier Dispute Telemetry

Economic dispute ladder with real-time bond tracking, committee voting quorum, and automated VOID safety hard floors.

View dispute spec
Chainlink: NVDA ≥ $224
ERC-8056: NVDA split
WITHIN (48h)EventComposer
Event Market
Lending Guard

Neural Topology & Composition

Combine primitive facts using AND, OR, NOT, and WITHIN temporal windows without writing custom oracle glue code.

See operator matrix
MAY 2026
SU
MO
TU
WE
TH
FR
SA
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Horizon:48h WITHIN Window

Temporal Horizon Window

Every event is evaluated at a fixed time T, inside a set observation and dispute window.

View lifecycle

Architecture

Five layers, one strict dependency rule

Each layer talks only to the one beneath it. Scroll to walk a fact from a Chainlink round to a settled market.

Read full spec →
  1. 1

    Sources, read-only

    Robinhood Chain mainnet · public APIs

    Chainlink stock & SGOV feeds, ERC-8056 UIMultiplierUpdated logs, Robinhood's asset API and FRED. Novak never writes here — resolver adapters like chainlink.price-at.v1 just read it.

  2. 2

    Resolvers reach quorum

    EventRegistry.sol

    Each authorized resolver calls submitObservation(eventId, outcomeData, evidenceHash). When quorumThreshold of them submit the identical payload, it becomes the proposed outcome and the dispute window starts.

01 · Sources → resolvers

testnet
123
  • 1Stock feedsChainlink
  • 2Fed ratesFRED
  • 3RobinhoodAsset API

Facts originate in US markets and the Fed; tokenized stocks are held and traded 24/7, worldwide.

  1. 3

    Disputes go to committees

    DisputeManager.sol

    Anyone can dispute() by posting a bond. Tier 1 (≤7 resolvers) needs 66% of the committee; no decision escalates to Tier 2 (≤15); still none → Voided and markets refund. Never a token vote.

  2. 4

    Finalized facts, composable

    EventBus.sol · EventComposer.sol

    Every consumer reads readOutcome() and getAvailability() — Pending, Available or Voided. Facts combine with AND / OR / NOT / BEFORE / WITHIN into new events with canonical IDs.

  3. 5

    Markets settle on them

    DistributionMarket · Market · StockLendingGuard

    Range markets, yes/no markets and the lending guard read only through Settlement. Their fees flow to the TreasuryVault: ⅓ correct resolvers · ⅓ committee · ⅓ treasury.

02 · One fact, every market

EventBus.readOutcome

A finalized fact is stored once and read by every range market, yes/no market and lending guard.

Live, end to end

From a price tick to a settled market

Every Chainlink round for tokenized stocks, the SGOV tokenized Treasury and crypto — plus the Fed's target rate — is a source Novak's resolvers can watch.

  1. 1Observe — resolvers read the round in effect at T and post an evidence hash.
  2. 2Agree — identical answers reach quorum; a dispute window opens.
  3. 3Finalize — the fact lands on the EventBus — once, for everyone.
  4. 4Settle — markets pay out and fees reward the resolvers who were right.

Prices on the right are live from Robinhood Chain mainnet; protocol steps are from the testnet deployment.

NVDA round·live

Chainlink, Robinhood Chain

feed

Why it matters

Composable facts, not one-off integrations

One NVDA fact, finalized once, is read by a market that settles on it and a lending guard that pauses liquidations — neither runs its own oracle. Rules like “NVDA above $X AND a split this week” are events too, with canonical IDs the next protocol simply reuses.

Any prediction market or AMM plugs in with a few SDK calls — or one IEventBus read on-chain — and inherits quorum, bonded committees and the VOID refund path.

your-amm/settle.ts — @novakoracle/sdk
✔ @novakoracle/sdk ready · generated ABIs + Robinhood Chain testnet addresses
✔ EventBus 0xab30…1054 · chain 46630
✔ 5 boundary events · quorum 2 · dispute window 10 min
… resolvers observe the Chainlink round at T · quorum · window closes
✔ Finalized · outcome TRUE
✔ AMM settled · winners paid
ℹ fees → TreasuryVault · ⅓ resolvers · ⅓ committee · ⅓ treasury

Plug in

Any market. One dispute layer.

Sources and committees feed the EventBus; every market reads the same finalized answer from it.

Chainlink rounds
Resolver quorum
Committees
EventBus
Polymarket-style AMM
Range market
Lending guard
Your contract
step 1

Create or reuse an event

Price-at, corporate action, trading status or Fed rate — or reuse an existing ladder's IDs.

step 2

Wait for the outcome

waitForOutcome() polls the EventBus: Available → settle, Voided → refund.

step 3

Inherit the dispute layer

Quorum, bonded committees and VOID come with it — no oracle to run.

The difference

What happens when a fact is disputed

A $200M+ prediction market was once settled by a token-weighted vote against widely reported facts. Novak never asks token holders — and when nobody can agree, it refunds instead of guessing.

Optimistic oracle with token-vote escalation

  1. 1One proposer answersa single bonded proposal
  2. 2Someone disputesbond posted
  3. 3Escalates to a token voteweighted by governance-token holdings
  4. 4The vote picks an answereven when the facts are contested

Novak dispute layer

  1. 1Quorum of resolversidentical answers + evidence hashes
  2. 2Someone disputesposts a dispute bond
  3. 3Tier 1 committee≤7 resolvers re-check the source · 66%
  4. 4Tier 2 committee≤15 resolvers if Tier 1 can't agree
  5. 5Finalized — or VOIDno agreement → markets refund, never a guess