MIP10c9-SP4 Proposal: Whitelist MCDEX on ETH/USD Oracle

MIP10c9: Subproposal to Whitelist MCDEX for ETH/USD Oracle Access


MIP10c9-SP#: 4
Author(s): Zhao Yang, Tianchi Zhu, Jie liu
Contributors: Zhao Yang, Tianchi Zhu, Jie liu
Status: Formal Submission
Date Proposed: 2020-06-03
Date Ratified: <yyyy-mm-dd>


MIP10 is meant to handle all of the Oracle related actions. Unfortunately MIP10 has inconsistencies and doesn’t conform to the monthly governance cadence that the Maker Improvement Proposal framework is built around. This has generated a backlog of Oracle proposals. While MIP10 is refactored to conform to the regular MIP process, Oracle proposals such as this one will utilize the more liberal weekly governance cycle. While strictly speaking this makes them not subproposals, they are included in the subproposal archive as a point of provenance to serve as a paper trail.



MCDEX is a decentralized derivatives trading platform for perpetual contracts and futures. Currently, the perpetual contract is provided with fully on-chain AMM and off-chain order book. Both of the trading mode are based on margin account which is create through depositing collaterals into the contract. The PNL (profit and loss) is calculated based on the price read from oracle called mark price which is critical for keeping the whole system work.

Therefor, instead of using mark price from a single oracle, we read price from a primary oracle source and validate it with prices from different on-chain data sources. An update causing the price gap between primary price and validating prices exceeding a threshold (5% by default) would never success. The administrator could then decide to switch to another data source or stop the perpetual to prevent further loss.

Currently, MCDEX uses single price from Chainlink and intent to introduce Medianizer as a validator. There may be more sources in the future and a switch between them could happen at any time.

Oracle Name



MCDEX - [email protected]


MCDEX - 0x12Ee7E3369272CeE4e9843F36331561DBF9Ae6b4 - Medianizer


For each customer address to be whitelisted:

  • Is the contract source code verified on etherscan? yes
  • Is the Oracle data used in a permissioned manner that would prevent parasitic behavior? yes
  • Is Oracle data written to storage? yes
  • If Oracle data is stored, is it stored in a private variable? yes
  • If Oracle data is stored, is the value accessible on-chain exclusively by the protocol? yes


In accordance with the Responsible Oracle Migration Proposal, fees are waived for the first year and determined by MKR Governance after that.


  • reformatted preamble
  • added disclaimer

There is already a MIP10c9-SP1 here which pre-dates this one: MIP10c9-SP1 Proposal: Whitelist DeFi Saver on ETHUSD Oracle

The next available number is 4. I would suggest modifying this proposal such that it refers to itself as MIP10c9-SP4.

1 Like

Thanks for your advice :grinning:. I’ve corrected the numebr.

1 Like

I’ve verified all the information supplied in the application specifically around the requirements. Governance Poll will go live tomorrow.

Polling Vote is live