[RFC] Default offcahin assets to chainlink oracles on market activation

Upgrade market activation to default whitelisted off-chain assets/indices to a Chainlink oracle

Simple Summary

This proposal seeks to simplify the process of market activation for implementing a Chainlink oracle for off-chain assets and indices (specifically for the purpose of this post, XAU) where the oracle is already readily available from Chainlink.

Much like eIP 22, this proposal seeks to streamline the process for tokens where a corresponding chainlink feed already exists.

Abstract

Currently the process for activating a market for an asset (example: xAUT) defaults to the UniV3 Price feed as an oracle, which then needs to pass a governance proposal to switch to a chainlink feed (based on discussions in the discord).

This is not optimal nor safe for various reasons, chiefly, low liquidity in the UniV3 pool and the corresponding risk of price manipulation.

I propose this process be streamlined to allow chainlink feeds on activation for a basket of pre-approved assets, lowering the barrier to market creation for off-chain assets and indices with a current feed.

Motivation

Current market activation defaults to the corresponding uniV3 pool as an oracle source. In the context of XAU, this is not optimal nor safe, as the UniV3 pool has low Liquidity for xAUT. A default to a Chainlink price feed would make the activation process less cumbersome, safe and streamlined.

From discussions in the discord, it seems the process as it currently stands is:

  1. Activate market for xAUT with UniV3 price feed
  2. Create a proposal to upgrade to a Chainlink feed
  3. Once passed, implement the ChainLink feed

I propose the new process be:

  1. Activate a market for a whitelisted asset (xAUT) which defaults to the corresponding price feed where available (XAU).

XAU Overview

XAU is the forex representation of GOLD.
X: Forex
AU: Chemical element for GOLD.

The price of XAU represents the current market price for 1 ounce of gold.

xAUT Token

xAUT is the Tether representation for XAU. xAUT is redeemable for 1:1 ounce gold, and therefore, closely corresponds the market price of XAU.

Specification & Implementation:

If passed, the activation process will be streamlined for implementing a whitelisted basket of assets (eg. XAU) with corresponding chainlink price feeds, rather than following the cumbersome process above.

Do you have a price estimate for the DAO to onboard xAUT to Chainlink oracles? While I see the need for this change, if it is expensive to use Chainlink we must consider the value it will drive to the protocol.

@river0x is right to consider the expenses. to change the established process of asset activation from default uniswap v3 twap oracle to use chainlink instead, where applicable, would require smart contracts update and costly audit.

what should be noted is the fact that the asset you represent (xAUT) can still be activated on Euler in the default process, no matter the liquidity of the uniswap pool. then, if needed, the price source can be switched in the governance process to chainlink. done it this way, it would be fraction of the cost compared to development and audit expenses

I agree with the principle that it should be possible to activate markets and directly use the desired oracle, but as @kasp points out, the system currently doesn’t work like that so it would be fastest/easiest to go through the normal route. We do actually have some ideas about how to better abstract price oracles in the future – we’ll publish those when they are a little more concrete.

@koda makes a good argument that the XAU chainlink oracle could be adequate for the XAUT asset, but ultimately that is a risk-management decision for the DAO to make so IMO it should be submitted as a snapshot proposal after the XAUT market is activated.

2 Likes

Thank for your response.
And thank you everyone for the responses. I understand this would come at a cost to the DAO through labor. I am a developer myself, and could offer help in this regard.

IMO I do not think the cost of activating a market that would be better served under a chainlink feed should come at the cost of the activator, especially if the default market feed is not fit for purpose.

Example: Currently , from our testcases, activating a position fluctuated in cost from 0.1-0.2 ETH, which is a significant cost for opening a market; that will also need to pass governance to be allotted the appropriate price feed under chainlink. If I may speak openly, this is poor UX.

In any sense, I appreciate all the responses and thank you all for your time and constructive feedback!