> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pragma.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Assets

> What assets are supported?

<Card title="Asset Coverage" icon="coins">
  Pragma supports a wide range of cryptocurrency pairs and currencies with ongoing expansion
</Card>

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.

<Tip>
  Please read the [risk section](./risks) and contact us before integrating.
</Tip>

## Market prices

The following asset pairs are officially supported by Pragma. More are added every week, so just reach out on [Twitter](https://twitter.com/PragmaOracle) or [Discord](https://discord.com/invite/M9aRZtZHU7) if you have a specific one you need. These are all market rates, computed based on the median price across the most liquid markets.

<Info>
  The <code>pair\_id</code> is calculated by utf-8 encoding the uppercased string (e.g. <code>str\_to\_felt("BTC/USD")</code>) and used to refer to specific feeds on-chain.
</Info>

<Warning>
  We have a [conversion rate](https://docs.pragma.build/starknet/development#conversion-rate) feed available for most of the LSTs/LRTs. We strongly encourage you to use those, especially for xSTRK and sSTRK, given the low number of sources available on the market rate. You shouldn't go in prod with the market rate for these assets until we add more sources.
</Warning>

<Info>
  The WSTETH/USD price is not a market rate — it is computed offchain using the wstETH/stETH conversion rate. Keep this in mind when integrating.
</Info>

<Tabs>
  <Tab title="Spot">
    | Ticker          | Pair Id                              | Decimals | Mainnet | Risk |
    | --------------- | ------------------------------------ | -------- | ------- | ---- |
    | BTC/USD         | 18669995996566340                    | 8        | ✅       | L    |
    | ETH/USD         | 19514442401534788                    | 8        | ✅       | L    |
    | WBTC/USD        | 6287680677296296772                  | 8        | ✅       | M    |
    | WBTC/BTC        | 6287680677295051843                  | 8        | ✅       | M    |
    | BTC/EUR         | 18669995995518290                    | 8        | ✅       | L    |
    | WSTETH/USD      | 412383036120118613857092             | 8        | ✅       | M    |
    | LORDS/USD       | 1407668255603079598916               | 8        | ✅       | H    |
    | UNI/USD         | 24011449254105924                    | 8        | ✅       | M    |
    | STRK/USD        | 6004514686061859652                  | 8        | ✅       | L    |
    | NSTR/USD        | 5643947469983535940                  | 8        | ✅       | H    |
    | EKUBO/USD       | 1278253658919688033092               | 8        | ✅       | H    |
    | DOG/USD         | 19227465571717956                    | 5        | ✅       | H    |
    | XSTRK/USD       | 1629317993172502401860               | 8        | ✅       | H    |
    | KSTRK/USD       | 1389510320214278230852               | 8        | ✅       | H    |
    | SSTRK/USD       | 1537084272803954643780               | 8        | ✅       | H    |
    | BROTHER/USDPLUS | 344361035359747530676741291142567251 | 18       | ✅       | H    |
    | BROTHER/USDPLUS | 344361035359747530676741291142567251 | 18       | ✅       | H    |
  </Tab>

  <Tab title="Future">
    | Ticker   | Pair Id             | Decimals | Mainnet | Risk |
    | -------- | ------------------- | -------- | ------- | ---- |
    | BTC/USD  | 18669995996566340   | 8        | ✅       | D    |
    | ETH/USD  | 19514442401534788   | 8        | ✅       | D    |
    | BTC/USDT | 4779518975120983124 | 6        | ✅       | D    |
    | ETH/USDT | 4995697254792905812 | 6        | ✅       | D    |
  </Tab>

  <Tab title="Stablecoins">
    | Ticker   | Pair Id             | Decimals | Mainnet | Risk |
    | -------- | ------------------- | -------- | ------- | ---- |
    | USDT/USD | 6148333044652921668 | 6        | ✅       | L    |
    | DAI/USD  | 19212080998863684   | 8        | ✅       | M    |
    | USDC/USD | 6148332971638477636 | 6        | ✅       | L    |
    | LUSD/USD | 5500394072219931460 | 8        | ✅       | D    |
  </Tab>
</Tabs>

## Currencies & Rebasing

<Card>
  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 <code>get\_data\_with\_USD\_hop</code> 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.
</Card>

<Tabs>
  <Tab title="Abstract Currencies">
    <div className="mb-4">
      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.
    </div>

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

    | Currency      | Currency Id                     | Decimals | Mainnet | Risk |
    | ------------- | ------------------------------- | -------- | ------- | ---- |
    | USD           | 5591876                         | 8        | ✅       | L    |
    | USDPLUS       | 24016925890467155               | 18       | ✅       | M    |
    | BTC           | 4346947                         | 8        | ✅       | L    |
    | EUR           | 4543826                         | 8        | ✅       | M    |
    | FIXEDRESERVED | 5568670494291182059991831299396 | 18       | ✅       | L    |
  </Tab>

  <Tab title="Concrete Currencies">
    <div className="mb-4">
      These are specific tokens that exist as on-chain representations.
    </div>

    | Currency | Currency Id | Decimals | Starknet address Mainnet                                           | Ethereum address Mainnet                   | Starknet address Testnet                                           |
    | -------- | ----------- | -------- | ------------------------------------------------------------------ | ------------------------------------------ | ------------------------------------------------------------------ |
    | BTC      | 4346947     | 8        | 0x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac | 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 | 0x12d537dc323c439dc65c976fad242d5610d27cfb5f31689a0a319b8be7f3d56  |
    | ETH      | 4543560     | 18       | 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 | 0x0000000000000000000000000000000000000000 | 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 |
    | USDC     | 1431520323  | 6        | 0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8 | 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 | 0x001d5b64feabc8ac7c839753994f469704c6fabdd45c8fe6d26ed57b5eb79057 |
    | USDT     | 1431520340  | 6        | 0x068f5c6a61780768455de69077e07e89787839bf8166decfbf92b645209c0fb8 | 0xdac17f958d2ee523a2206206994597c13d831ec7 | 0x386e8d061177f19b3b485c20e31137e6f6bc497cc635ccdfcab96fadf5add6a  |
    | DAI      | 4473161     | 18       | 0x001108cdbe5d82737b9057590adaf97d34e74b5452f0628161d237746b6fe69e | 0x6B175474E89094C44Da98b954EedeAC495271d0F | 0x0278f24c3e74cbf7a375ec099df306289beb0605a346277d200b791a7f811a19 |
  </Tab>
</Tabs>

## Fixed Price

<Card title="Fixed 1$ Rate" icon="dollar-sign">
  We have introduced a fixed price pair <code>FIXEDRESERVED/USD</code> for consumers who want to have a fixed rate of <strong>1\$</strong>.
  The resulting fixed price will have <strong>8 decimals</strong>.
</Card>

<CodeGroup>
  ```rust Cairo Implementation theme={null}
  use pragma_lib::abi::{IPragmaABIDispatcher, IPragmaABIDispatcherTrait};
  use pragma_lib::types::{AggregationMode, DataType, PragmaPricesResponse};
  use starknet::ContractAddress;
  use starknet::contract_address::contract_address_const;


  const KEY :felt252 = 23917257655180781648846825458055798674244; // felt252 conversion of "FIXEDRESERVED/USD", can also write const KEY : felt252 = 'FIXEDRESERVED/USD';

  fn get_asset_price_median(oracle_address: ContractAddress, asset : DataType) -> u128  {
      let oracle_dispatcher = IPragmaABIDispatcher{contract_address : oracle_address};
      let output : PragmaPricesResponse= oracle_dispatcher.get_data(asset, AggregationMode::Median(()));
      return output.price;
  }
  ```
</CodeGroup>

## Conversion Rates

<Card title="LST/LRT Conversion Rates" icon="exchange">
  These specialized feeds automatically calculate the conversion rate for liquid staking and liquid restaking tokens.
</Card>

**Supported feeds:**

| Pair                     | Pair Id                                                 | Decimals |
| ------------------------ | ------------------------------------------------------- | -------- |
| CONVERSION\_XSTRK/USD    | 384270964630611589151504336040175440891848512324        | 8        |
| CONVERSION\_SSTRK/USD    | 384270964630611589151504335947941720523300754244        | 8        |
| CONVERSION\_XSBTC/USD    | 384270964630611589151504336040170376506931237700        | 8        |
| CONVERSION\_XTBTC/USD    | 384270964630611589151504336040242434100969165636        | 8        |
| CONVERSION\_XLBTC/USD    | 384270964630611589151504336039665973348665742148        | 8        |
| CONVERSION\_XWBTC/USD    | 384270964630611589151504336040458606883082949444        | 8        |
| CONVERSION\_XSTRKBTC/USD | 6446996976136130843298044970682608049743121986518078276 | 8        |

<Info>
  For implementation details and code examples, see the [Conversion Rate section](./development#conversion-rate) in the development documentation.
</Info>

## Exchange Rates

<Warning>
  The current exchange rate implementation is a v1 permissioned system without L1->L2 messaging. We're actively developing a permissionless version that will leverage L1->L2 messaging, though this will require additional time for completion and audit.
</Warning>

| Ticker     | Pair Id                         | Decimals | Mainnet | Risk |
| ---------- | ------------------------------- | -------- | ------- | ---- |
| MRE7YIELD  | 6126029961662454190135905178436 | 8        | ✅       | H    |
| MRE7BTC    | 93475798969100511401562948      | 8        | ✅       | H    |
| LBTC/USD   | 5495047142879089476             | 8        | ✅       | H    |
| uniBTC/USD | 402845275956029953495876        | 8        | ✅       | H    |
| USN/USD    | 24016968287081284               | 8        | ✅       | H    |
| SUSN/USD   | 6004797273435099972             | 8        | ✅       | H    |

## Need More Assets?

<Card title="Request New Assets" icon="plus">
  <div className="flex items-center justify-between">
    <div>
      Need a specific asset that's not listed here? We're constantly expanding our coverage.
    </div>

    <div className="flex space-x-4">
      <a href="https://twitter.com/PragmaOracle" className="text-blue-500 hover:text-blue-700" target="_blank">
        <span className="flex items-center">
          <span className="mr-1">Twitter</span>
        </span>
      </a>

      <a href="https://discord.com/invite/M9aRZtZHU7" className="text-indigo-500 hover:text-indigo-700" target="_blank">
        <span className="flex items-center">
          <span className="mr-1">Discord</span>
        </span>
      </a>
    </div>
  </div>
</Card>
