Skip to main content

Supported Assets


Pragma supports specific pairs that are listed and traded by our data partners. We also support a broader concept of currencies (each pair is a price of the quote currency in terms of the base currency). For pairs not listed, their price can be deduced by "hoping" using pairs that are listed, e.g. we can combine ETH/USD and BTC/USD to get a ETH/BTC feed.

Please read the risk section and contact us before integrating.

Asset Pairs

The following asset pairs are officially supported by Pragma. More are added every week, so just reach out on Twitter or Discord if you have a specific one you need.

The pair_id is calculated by utf-8 encoding the uppercased string (e.g. str_to_felt("BTC/USD")) and used to refer to specific feeds on-chain.

Spot

TickerPair IdDecimalsMainnetRisk
BTC/USD186699959965663408L
ETH/USD195144424015347888L
WBTC/USD62876806772962967728M
WBTC/BTC62876806772950518438M
BTC/EUR186699959955182908L
WSTETH/USD4123830361201186138570928M
LORDS/USD14076682556030795989168H
UNI/USD240114492541059248M
STRK/USD60045146860618596528L
ZEND/USD65046912915654131888H
NSTR/USD56439474699835359408H
EKUBO/USD12782536589196880330928H
XSTRK/USD16293179931725024018608H
KSTRK/USD13895103202142782308528H
SSTRK/USD15370842728039546437808H
BROTHER/USDPLUS34436103535974753067674129114256725118H

Future

TickerPair IdDecimalsMainnetRisk
BTC/USD186699959965663408D
ETH/USD195144424015347888D
BTC/USDT47795189751209831246D
ETH/USDT49956972547929058126D

Stablecoins

TickerPair IdDecimalsMainnetRisk
USDT/USD61483330446529216686L
DAI/USD192120809988636848M
USDC/USD61483329716384776366L
LUSD/USD55003940722199314608H

Currencies & Rebasing

If you want the price of one asset that Pragma lists in the price of another asset also listed (e.g. the price of BTC/ETH), you can simply get the result by calling the get_data_with_USD_hop endpoint. In that case, the result will have as many decimals as the base asset you are requesting, e.g. for BTC/ETH it would be 18 decimals because the base unit of ETH is wei where 10^18 wei = 1 ETH.

Abstract Currencies

Abstract currencies are not tracking a specific token but rather a broader concept or fiat currency. E.g. there is a difference between the ETH/USD price in the abstract and the ETH/USDC price that can be had in a specific AMM pool.

note

USDPLUS is exactly the same as USD but with 18 decimals to account for assets with very low price such as memecoins.

CurrencyCurrency IdDecimalsMainnetRisk
USD55918768L
USDPLUS2401692589046715518M
BTC43469478L
EUR45438268M
FIXEDRESERVED556867049429118205999183129939618L

Concrete Currencies

These are specific tokens that exist as on-chain representations.

CurrencyCurrency IdDecimalsStarknet address MainnetEthereum address MainnetStarknet address Testnet
BTC434694780x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac0x2260fac5e5542a773aa44fbcfedf7c193bc2c5990x12d537dc323c439dc65c976fad242d5610d27cfb5f31689a0a319b8be7f3d56
ETH4543560180x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc70x00000000000000000000000000000000000000000x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7
USDC143152032360x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a80xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb480x001d5b64feabc8ac7c839753994f469704c6fabdd45c8fe6d26ed57b5eb79057
USDT143152034060x068f5c6a61780768455de69077e07e89787839bf8166decfbf92b645209c0fb80xdac17f958d2ee523a2206206994597c13d831ec70x386e8d061177f19b3b485c20e31137e6f6bc497cc635ccdfcab96fadf5add6a
DAI4473161180x001108cdbe5d82737b9057590adaf97d34e74b5452f0628161d237746b6fe69e0x6B175474E89094C44Da98b954EedeAC495271d0F0x0278f24c3e74cbf7a375ec099df306289beb0605a346277d200b791a7f811a19

Fixed Price

We have introduced a fixed price pair FIXEDRESERVED/USD for consumers who want to have a fixed rate of 1$. Since this price is not directly available through the live data retrieval function (get_data), you must retrieve the price using the calculate_twap method from the summary_stats contract. To implement the fixed price, you can use the following Cairo code. The resulting fixed price will have 18 decimals.

use starknet::{ContractAddress, contract_address_const};
use pragma_lib::abi::{
ISummaryStatsABIDispatcher, ISummaryStatsABIDispatcherTrait
};
use pragma_lib::types::{AggregationMode, DataType};


fn get_fixed_price() -> u128 {
// Summary stats contract address
let SUMMARY_STATS_ADDRESS: ContractAddress = contract_address_const::<0x49eefafae944d07744d07cc72a5bf14728a6fb463c3eae5bca13552f5d455fd>();

// Pair id
let pair_id = 23917257655180781648846825458055798674244; // 'FIXEDRESERVED/USD' as felt
let start_time = 1734533205; // NOT TO BE MODIFIED, corresponds to the timestamp where we set the checkpoint
let end_tick = starknet::get_block_timestamp();
let time = end_tick - start_time;
let summary_dispatcher = ISummaryStatsABIDispatcher { contract_address: SUMMARY_STATS_ADDRESS å};
let (fixed_price, _) = summary_dispatcher.calculate_twap(
DataType::SpotEntry(pair_id),
AggregationMode::Median,
time, // duration
start_time, // beginning of the twap
);
return fixed_price; // Will return the fixed price with 18 decimals
}