โ† TOOLS HQ/DUSK DUAL PRICEDUSKEVM TESTNETOn-chain DUSK / USD + DUSK / EUR
TOOL #002
LIVETESTNET
๐ŸŒ—

Dusk Dual
Price.

A lightweight on-chain DUSK/USD and DUSK/EUR price oracle for DuskEVM applications and smart contracts.

Five providers in. One median out. Hopefully no drama.
LIVE ORACLE
โ— ON-CHAIN
DUSK / USD
...
On-chain
DUSK / EUR
...
On-chain
LAST PRICE CHANGE
...
UPDATE THRESHOLD
โ‰ฅ 0.2% deviation
PRICE FORMAT
8 decimals

The updater runs every 30 minutes, but only writes on-chain when either USD or EUR deviates by at least 0.2%. An older price-change timestamp does not by itself mean the updater is delayed.

UPDATER

Five opinions. One median.

The updater gathers multiple independent market prices, calculates a median and only submits an on-chain update when the difference is meaningful.

01

Fetch

Collect DUSK market prices from five providers.

02

Median

Calculate a robust median across the available sources.

03

Compare

Compare the result with the current on-chain price.

04

Update

Submit a transaction when either USD or EUR deviates by at least 0.2%.

SCHEDULE
30 min
GitHub Actions
PROVIDERS
5
Independent sources
AGGREGATION
Median
Robust price selection
THRESHOLD
โ‰ฅ 0.2%
Update deviation
PRICE SOURCES

Don't trust just one exchange.

USD is built from five configured market providers. EUR combines a USD-derived FX reference with a direct CoinGecko EUR reference when available.

SOURCE #01
Binance
Configured
SOURCE #02
KuCoin
Configured
SOURCE #03
Gate.io
Configured
SOURCE #04
CoinGecko
Configured
SOURCE #05
CoinPaprika
Configured
Provider availability is evaluated by the updater itself. This page currently shows the configured provider set, not a live provider-health dashboard.
BUILD WITH IT

What could you use this for?

Any DuskEVM contract that needs a DUSK fiat reference can consume the oracle.

๐Ÿ’ณ

Fiat-priced payments

Price something in USD or EUR while accepting the equivalent amount in DUSK.

๐Ÿฆ

Collateral

Estimate the fiat value of DUSK collateral before applying application-specific rules.

๐Ÿ“Š

Treasury values

Calculate the fiat reference value of DUSK held by a contract or treasury.

โšก

Price triggers

Build contract logic that reacts when DUSK crosses an application-defined price level.

DEVELOPER

Read it from Solidity.

The deployed oracle exposes the current USD price, EUR price and last update timestamp through getPrices().

NETWORK
DuskEVM Testnet
CONTRACT
0x4B69A094014c88177869C616A0e1bc6C0AD7a5E4
PRICE DECIMALS
8
SCALE
1e8
FUNCTION
getPrices()
UPDATER
Owner-controlled
SOLIDITY
COPY / PASTE
interface IDuskDualPriceOracle {
    function getPrices()
        external
        view
        returns (
            uint256 usd,
            uint256 eur,
            uint256 updatedAt
        );
}

IDuskDualPriceOracle oracle =
    IDuskDualPriceOracle(
        0x4B69A094014c88177869C616A0e1bc6C0AD7a5E4
    );

(
    uint256 usd,
    uint256 eur,
    uint256 updatedAt
) = oracle.getPrices();

// Prices use 8 decimals.
// 6808700 = $0.06808700
//
// updatedAt is the timestamp of the last on-chain
// PRICE CHANGE, not the last updater run.
// The updater may run successfully without writing
// when both deviations remain below 0.2%.
RAW ORACLE DATA

For people who like integers.

The contract stores uint256 values scaled by 1e8.

priceUsd
...
priceEur
...
lastUpdated
...
decimals
8
HOW DECENTRALIZED IS THIS THING?

Multi-source pricing.
Owner-submitted updates.

Price selection uses multiple market providers and a median-based updater, but the deployed oracle contract currently accepts updates from its owner address only. It is therefore not a decentralized oracle network.

Consumers should treat updatedAt as the timestamp of the last on-chain price change, not as an updater-health heartbeat. The updater can run successfully without writing when both price deviations remain below 0.2%.

The price lives on-chain. The Intern currently doesn't.