Hello everyone ![]()
I’d like to open a technical discussion about an issue that could have meaningful implications for how the Sovryn ecosystem —and protocols building on Rootstock, such as Money On Chain— are perceived externally.
Context
Recently, some community members noticed that the price of the DOC asset displayed on Sovryn (and consequently on aggregators like CoinMarketCap or CoinGecko) does not reflect the 1:1 peg it maintains within the Money On Chain protocol.
In the MOC protocol, DOC can always be minted and redeemed 1:1 against BTC, meaning its peg is fully guaranteed on-chain.
However, the price displayed on Sovryn and propagated to external indexers often diverges from 1 USD, giving the false impression that the peg has been lost.
Upon reviewing the architecture, it seems that the discrepancy stems from the way Sovryn uses XUSD as the numeraire (reference unit) within its system.
XUSD is internally fixed to 1 USD to simplify price calculations between pairs.
All derived quotations —including DOC, RBTC, BTC, SOV, etc.— are calculated relative to XUSD.
When aggregators (CMC, CG) pull these prices as the “official source,” the result is a distortion, since there may not be sufficient liquidity or arbitrage capacity in those pairs (e.g., DOC/XUSD).
Thus, Sovryn ends up publishing prices that don’t align with the real on-chain redeemable value of the asset, which affects the perception of DOC and the Rootstock ecosystem overall.
On sites like CoinMarketCap or CoinGecko, the price of DOC appears depegged from the dollar.
This misleads new users or investors who interpret that the stablecoin has lost its peg.
Additionally, it distorts the price of other assets within Sovryn, since everything is calculated relative to the same internal reference unit (XUSD = 1).
Constructive Proposal
The goal of this post is not to question Sovryn’s internal design but to explore potential improvements in how prices are reported:
-
Review how the “USD” price is calculated in the subgraphs and APIs.
-
Avoid assuming XUSD = 1, or alternatively, introduce a TWAP/liquidity-weighted average.
-
Add a metadata field in public APIs indicating that the displayed price is an “internal reference” and not necessarily equivalent to the on-chain parity.
-
Coordinate with Money On Chain and CoinMarketCap/Coingecko so aggregators use the on-chain parity source as the main reference for DOC’s price.
-
Publicly document the role of XUSD as an internal numeraire, so communities understand it’s a technical choice, not a market reality.
Sovryn has always been a pioneer in transparency and decentralization.
Implementing such adjustments could further strengthen the protocol’s credibility and help protect the reputation of all projects within the Rootstock ecosystem.
I appreciate any technical input, clarification, or additional ideas from the team or the community to continue refining how prices are reported and to avoid external confusion.
Best regards,
Legosi