Skip to main content
DIA is a cross-chain oracle provider that sources granular market data from diverse exchanges, including CEXs and DEXs. Its data sourcing is thorough, enabling unparalleled transparency and customizability for resilient price feeds for 20,000+ assets. Its versatile data processing and delivery ensures adaptability and reliability for any decentralized application.

Oracle Details

ChainAddress
Mainnet0xF526dC0D2B73488d32b58E55C17Cef5a53AD002A
Testnet0x6f021bF081840F96bdd90fd756b700072C7E68A5

Oracle Configuration

ParameterValue
Pricing MethodologyMAIR
Deviation (%) & Refresh Frequency0.5% and 120 seconds
Heartbeat24h

Asset Feeds

Mainnet

Asset TickerAdapter AddressAsset Markets
WETH0xAdEfc2264c21A05D3f83bf7694438F81E119620BWETH markets
cbBTC0x7F760344c9Cde8DD342120FA0F908CE0Cd42B1E6cbBTC markets

Testnet

Asset TickerAdapter AddressAsset Markets
WETH0xA09A4e4297a06e284a4ACdf2Ca1F9998d5280F6eWETH markets
cbBTC0x61790e8F9bf02E4272E273F2615eD4fc7d8F95D9cbBTC markets

How to Access Data

getValue Method

To consume price data, you’ll need to invoke the getValue method on the oracle contract which you can access through the DIA Oracle library or the interface. Below is an example of a contract consuming data from our oracle on Superseed mainnet using the IDIAOracleV2 interface. If you pass WETH/USD as the key, it will return the most recent price of WETH in USD with 8 decimal places (e.g. 177101990135 is $1,771.01990135) along with the Unix timestamp of the last price update.
pragma solidity ^0.8.13;

interface IDIAOracleV2 {
    function getValue(string memory) external view returns (uint128,
             uint128);
}

contract DIAOracleSample {

    address immutable ORACLE = 0xF526dC0D2B73488d32b58E55C17Cef5a53AD002A;

    function getPrice(string memory key)
    external
    view
    returns (
        uint128 latestPrice,
        uint128 timestampOflatestPrice
    ) {
        (latestPrice, timestampOflatestPrice) =
                 IDIAOracleV2(ORACLE).getValue(key);
    }
}
See the full example here.

Adapter contracts

To consume price data from our oracle, you can use the adapter smart contract located at the adapter address for each asset. This will allow you to access the same methods on the AggregatorV3Interface such as getRoundData & latestRoundData. You can learn more here. This is a sample contract for consuming the WETH/USD price feed on Superseed mainnet:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

interface DiaAssetSpecificCallingConvention {
    function latestRoundData() external view returns (
        uint80 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint80 answeredInRound
    );
}

contract DIAOracleSample {
    address wethAdapter = 0xF526dC0D2B73488d32b58E55C17Cef5a53AD002A;

    function getWETHLatestPrice() external view returns (
        uint128 latestPrice,
        uint128 timestampOflatestPrice
    ) {
        // Call the Chainlink adapter's latestRoundData function
        (, int256 answer, , uint256 updatedAt, ) =
            DiaAssetSpecificCallingConvention(wethAdapter).latestRoundData();

        latestPrice = uint128(uint256(answer));
        timestampOflatestPrice = uint128(updatedAt);

        return (latestPrice, timestampOflatestPrice);
    }
}

Oracle Grants Program

The DIA Oracle Grants Program provides zero-cost oracle access for up to 1 year, covering deployment and update costs to accelerate dApp development on Superseed. Learn more about the grant here:

DIA Oracle Grants Program | Apply Now

Request a Custom Oracle

DIA offers highly customizable oracles that are individually tailored to each dApp’s needs. Each oracle can be customized in the following ways, including:
  • Data Sources & Asset Feeds
  • Pricing Methodologies
  • Update Triggers (Frequency, Deviation, Heartbeat, …etc)
Get a tailored oracle for your dApp, request one below:

Support

For developer assistance, connect with the DIA team directly on Discord or Telegram.
I