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.

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.
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.
“Chainlink does not provide corporate-action calendar data or automated pause triggers; pause timing and multiplier updates are coordinated by Robinhood.”
“oraclePaused() … is advisory and not enforced on-chain.”
“Subscribe to UIMultiplierUpdated events … handle multiplier changes in lending collateral calculations.”
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.
ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.
Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.
Snapshot of Robinhood's asset registry, agreed by a resolver quorum.
minChangeBps ≥ 5000 separates real splits from dividend reinvestment.
Two facts, one canonical ID — every market composing them reads the same answer.
ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.
Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.
Snapshot of Robinhood's asset registry, agreed by a resolver quorum.
minChangeBps ≥ 5000 separates real splits from dividend reinvestment.
Two facts, one canonical ID — every market composing them reads the same answer.
ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.
Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.
Snapshot of Robinhood's asset registry, agreed by a resolver quorum.
minChangeBps ≥ 5000 separates real splits from dividend reinvestment.
Two facts, one canonical ID — every market composing them reads the same answer.
ERC-8056 update effective Sep 10 2026 — detected by resolvers from the token's own logs.
Chainlink Robinhood NVDA/USD round in effect at T, read on Robinhood Chain.
Snapshot of Robinhood's asset registry, agreed by a resolver quorum.
minChangeBps ≥ 5000 separates real splits from dividend reinvestment.
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 specNeural Topology & Composition
Combine primitive facts using AND, OR, NOT, and WITHIN temporal windows without writing custom oracle glue code.
See operator matrixTemporal Horizon Window
Every event is evaluated at a fixed time T, inside a set observation and dispute window.
View lifecycleArchitecture
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.
- 1
Sources, read-only
Robinhood Chain mainnet · public APIs
Chainlink stock & SGOV feeds, ERC-8056
UIMultiplierUpdatedlogs, Robinhood's asset API and FRED. Novak never writes here — resolver adapters likechainlink.price-at.v1just read it. - 2
Resolvers reach quorum
EventRegistry.sol
Each authorized resolver calls
submitObservation(eventId, outcomeData, evidenceHash). WhenquorumThresholdof them submit the identical payload, it becomes the proposed outcome and the dispute window starts.
01 · Sources → resolvers
testnet- 1Stock feedsChainlink
- 2Fed ratesFRED
- 3RobinhoodAsset API
Facts originate in US markets and the Fed; tokenized stocks are held and traded 24/7, worldwide.
- 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 →Voidedand markets refund. Never a token vote. - 4
Finalized facts, composable
EventBus.sol · EventComposer.sol
Every consumer reads
readOutcome()andgetAvailability()— Pending, Available or Voided. Facts combine with AND / OR / NOT / BEFORE / WITHIN into new events with canonical IDs. - 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 theTreasuryVault: ⅓ correct resolvers · ⅓ committee · ⅓ treasury.
02 · One fact, every market
EventBus.readOutcomeA 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.
- 1Observe — resolvers read the round in effect at T and post an evidence hash.
- 2Agree — identical answers reach quorum; a dispute window opens.
- 3Finalize — the fact lands on the EventBus — once, for everyone.
- 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.
Chainlink, Robinhood Chain
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.
✔ @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 · ⅓ treasuryPlug in
Any market. One dispute layer.
Sources and committees feed the EventBus; every market reads the same finalized answer from it.
Create or reuse an event
Price-at, corporate action, trading status or Fed rate — or reuse an existing ladder's IDs.
Wait for the outcome
waitForOutcome() polls the EventBus: Available → settle, Voided → refund.
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
- 1One proposer answersa single bonded proposal
- 2Someone disputesbond posted
- 3Escalates to a token voteweighted by governance-token holdings
- 4The vote picks an answereven when the facts are contested
Novak dispute layer
- 1Quorum of resolversidentical answers + evidence hashes
- 2Someone disputesposts a dispute bond
- 3Tier 1 committee≤7 resolvers re-check the source · 66%
- 4Tier 2 committee≤15 resolvers if Tier 1 can't agree
- 5Finalized — or VOIDno agreement → markets refund, never a guess

