NVDANVIDIA
Preview — no contract deployedtoken 0xd0601CE157Db5bdC3162BbaC2a2C8aF5320D9EEC · feed 0x379EC4f7C378F34a1B47E4F3cbeBCbAC3E8E9F15 · adapter address issued by the factory at deploy
Adapter status (on chain)
previewQuiet
The feed is silent but every flag is clean and the continuity invariant holds. Equities trade 24/5; this chain runs 24/7. The last price stands.
Computed off chain by the adapter’s own rules against the live feed, not read from a contract.
Classified off chain
The feed is silent but still within its 24-hour heartbeat. Equities trade 24/5; this chain runs 24/7.
The same rules the adapter applies, run against live data by this site.
Live feed price
$218.34
Chainlink, on chain · 2h 14m old of a 1d 0h heartbeat
What the adapter would answer
preview$218.34
Nothing is held in this state: the adapter passes the feed’s own number through, so this is the price it would return right now.
Protection budget remaining
preview3d 0h
Full: the budget is only spent while a price is held, and no protection window is open on this feed.
uiMultiplier
1.000775
Staged multiplier: 1.000775. A difference between these two is a corporate action in progress.
No snapshot committed yet. The first one is written when the adapter is deployed.
Connect a wallet to send this transaction.
Permissionless and grants nothing. The continuity invariant compares the current round against this snapshot, so its freshness is what the check depends on.
What this adapter is worth to you
The same position, valued three ways against this feed at the price above. Two of the three are wrong, and neither of them reverts — which is why the mistake survives an audit.
balanceOf() x Chainlink
$21834.21
Correct
balanceOfUI() x Chainlink
$21851.13
Multiplier applied twice
balanceOf() x REST quote
$21817.29
Multiplier never applied
Error against the correct valuation
+$16.92
Integration
One address, changed through your existing oracle governance. No code change, no new audit surface.
// Before — the raw Chainlink feed
AggregatorV3Interface oracle = AggregatorV3Interface(0x379EC4f7C378F34a1B47E4F3cbeBCbAC3E8E9F15);
// After — one governance change, no code change
AggregatorV3Interface oracle = AggregatorV3Interface(<Available once the factory is deployed>);Optional: gate new borrows
Liquidation protection needs no code change. Preventing new risk from being taken on a held price does, and it is three lines.
require(
IStockOracleAdapter(oracle).status() == IStockOracleAdapter.Status.NORMAL,
"market not in normal state"
);