Price Oracles

OUSD is designed to stay pegged at 1 USD and be 1:1 backed with its underlying stablecoins. This is trickier than it sounds because these underlying stablecoins are constantly deviating from their own desired 1 USD pegs. While the majority of daily fluctuations are minor, there have been major swings in price that have occurred in the past and are likely to occur again in the future.

Coin

Low

High

Delta

Source

USDC

$0.929222

Mar 13, 2020

$1.11

Oct 15, 2018

$0.180778

CoinMarketCap

USDC

$0.924188

Aug 02, 2020

$1.17

May 08, 2019

$0.245812

CoinGecko

DAI

$0.945505

May 10, 2020

$1.11

Mar 13, 2020

$0.164495

CoinMarketCap

DAI

$0.903243

Nov 25, 2019

$1.22

Mar 13, 2020

$0.316757

CoinGecko

USDT

$0.849809

Feb 02, 2017

$1.21

May 27, 2017

$0.360191

CoinGecko

USDT

$0.572521

Mar 02, 2015

$1.32

Jul 24, 2018

$0.747479

CoinMarketCap

The rebasing function treats 1 stablecoin as 1 OUSD for simplicity and to protect OUSD balances from being affected by the daily fluctuations in the price of the underlying stablecoins. Since the rebase function only counts coins, OUSD balances should only increase.

In order to mint and redeem the appropriate number of OUSD on entry and exit, the smart contracts need to accurately price the USDT, USDC, and DAI that is entering and exiting the system.

As an added precaution, OUSD never pays more than a dollar for a stablecoin. This prevents the protocol from being attacked via mispriced oracles. Any additional gains that are collected as a result of stablecoins slipping from their peg are redistributed to the remaining holders of OUSD in the form of additional yield.

As a decentralized protocol, OUSD must rely on non-centralized sources for these prices. OUSD uses Chainlink oracles for pricing data for DAI, USDC and USDT. You can read more about our decision to work with Chainlink on our blog. Here are the Chainlink oracles we are currently using:

The specific smart contract address for each oracle being used are listed on our registry page. It is possible that additional oracles will be added to the protocol over time. Support may also be removed if any of these oracles become unreliable.