Prices Oracles used by nYUSD

nYUSD 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.
Mar 13, 2020
Oct 15, 2018
Aug 02, 2020
May 08, 2019
May 10, 2020
Mar 13, 2020
Nov 25, 2019
Mar 13, 2020
Feb 02, 2017
May 27, 2017
Mar 02, 2015
Jul 24, 2018
The rebasing function treats 1 stablecoin as 1 nYUSD for simplicity and to protect nYUSD balances from being affected by the daily fluctuations in the price of the underlying stablecoins. Since the rebase function only counts coins, nYUSD balances should only increase.
In order to mint and redeem the appropriate number of nYUSD on entry and exit, the smart contracts need to accurately price the DAI, USDC, USDT, UST, TUSD, BUSD, USDP, FEI, USDN, FRAX, & HUSD that is entering and exiting the system. As a decentralized protocol, nYUSD must rely on non-centralized sources for these prices.
nYUSD will fetch the price from multiple on-chain oracles and use the exchange rate that is most advantageous for the vault when minting or redeeming.
In order to prevent malicious attacks and to encourage long-term investors over short-term speculators, the nYUSD contract will compare price feeds from multiple sources and will use whichever exchange rate benefits the entire vault over the individual. This mechanism protects the vault funds from arbitrageurs and prevents any individual from being able to take advantage of any temporary inefficiencies caused by mispriced oracles to deplete the shared pool of assets.
This protects the funds in the vault while rewarding long-term holders. Since the safest price depends on the direction of the trade, the NEPRIDAO oracle will expose both a priceUSDMint() and a priceUSDRedeem().
Here is the initial set of oracles that are being used to design nYUSD:
The specific smart contract address for each oracle being used will be 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.