Chainlink-compatible Pyth and Switchboard adapters, readable in one atomic call. No bridge. No pull. No relay.
| Pair | Source | Price | Updated | Staleness | Status | Adapter address | |
|---|---|---|---|---|---|---|---|
| Loading feeds… | |||||||
// SPDX-License-Identifier: MITpragma solidity ^0.8.24;import { AggregatorV3Interface } from"@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol";contract PriceConsumer {// BTC/USD adapter on Rome rubicon mainnet (chainId 7531)AggregatorV3Interface public constant FEED =AggregatorV3Interface(0x7F3A8e12b5C89a4D2f1e9B7c6A3d5E8f2C1b4a9D);function latestPrice() external view returns (int256 price, uint256 updatedAt) {(, price, , updatedAt, ) = FEED.latestRoundData();}}
Attributes, not verdicts. Pick the column that fits your risk, chain, and payload budget.
| Rome Oracle Gateway | Pyth Pull on Arbitrum | Chainlink Data Streams | |
|---|---|---|---|
| Read pattern | Single read, atomic | Pre-push update + read | Streamed pull to EVM |
| Message relay | None · CPI to Solana | Wormhole VAA | Off-chain stream |
| Payload to submit | Zero bytes | ~1.2 KB per update | Signed stream message |
| Latency | ~400ms (one Rome block) | 400ms + relay + tx | Stream cadence |
| Gas cost to read | ≈ Solidity SLOAD | Update + read tx | Verify + read |
| Chain support | Rome EVM rollups | Many EVMs | Select EVMs |
| Adapter interface | AggregatorV3Interface | Pyth IPyth | StreamsLookup |
| Liveness model | Per-adapter maxStaleness | Consumer responsibility | Operator SLO |
First-party price data from institutional publishers. Permissionless price accounts on Solana, read atomically via the Rome precompile.
On-demand oracle jobs running in TEEs. Custom feeds beyond standard pairs — LSTs, exotic markets, indexes.
Drop a Chainlink-compatible adapter address into your contract and call latestRoundData(). That's the whole integration.
Have a Pyth or Switchboard account on Solana that isn't wrapped yet? Deploy a permissionless adapter in five steps.