Integrating DIA Oracles on Somnia
Last updated
Last updated
Oracles provide secure, customizable, and decentralized price feeds that can be integrated into smart contracts on the Somnia Testnet. This guide will walk you through how to access on-chain price data, understand the oracle’s functionality, and integrate it into your Solidity Smart Contracts.
DIA Oracle contract address:
Pricing Methodology: MAIR
Deviation Threshold: 0.5% (Triggers price update if exceeded)
Refresh Frequency: Every 120 seconds
Heartbeat: Forced price update every 24 hours
USDT
0x67d2C2a87A17b7267a6DBb1A59575C0E9A1D1c3e
USDC
0x235266D5ca6f19F134421C49834C108b32C2124e
BTC
0x4803db1ca3A1DA49c3DB991e1c390321c20e1f21
ARB
0x74952812B6a9e4f826b2969C6D189c4425CBc19B
SOL
0xD5Ea6C434582F827303423dA21729bEa4F87D519
DIA oracles continuously fetch and push asset prices on-chain using an oracleUpdater, which operates within the DIAOracleV2
contract. The oracle uses predefined update intervals and deviation thresholds to determine when price updates are necessary.
DIA has a dedicated Solidity library to facilitate the integration of DIA oracles in your own contracts. The library consists of two functions, getPrice
and getPriceIfNotOlderThan
.
getPrice
Returns the price of a specified asset along with the update timestamp.
getPriceIfNotOlderThan
Checks if the oracle price is older than maxTimePassed
The following contract provides an integration example of retrieving prices and verifying price age.
Deviation
Percentage threshold that triggers a price update when exceeded.
Refresh Frequency
Time interval for checking and updating prices if conditions are met.
Trade Window
Time interval used to aggregate trades for price calculation.
Heartbeat
Forced price update at a fixed interval.
Developers can build secure, real-time, and on-chain financial applications with reliable pricing data by integrating DIA Oracles on Somnia.
Each asset price feed has an adapter contract, allowing access through the AggregatorV3Interface. You can use the methods getRoundData
and latestRoundData
to fetch pricing information. Learn more .
If you need further assistance integrating DIA Oracles, reach out through DIA’s and ask your questions in the #dev-support channel on .