Completely Detaching RAI from Fiat

This post is meant as a quick overview of how RAI might detach from its current USD denomination into something that’s not fiat related.

Before we start, I’d like to mention that the USD denomination is still necessary for now. Many people are still confused when they look at RAI and making it even harder to understand by denominating in an exotic index doesn’t help.

Where We Are

At the moment, RAI’s redemption price is about $3.03. The liquidation ratio for a RAI position is 140% (or 1.4). Assuming the ETH price is $3000, the actual price pushed into the system is 3000 / 1.4 / 3.03 = 707.213. This calculation does two things:

  • It applies changes in the redemption price uniformly across all RAI minters
  • It ensures that the system can quickly check whether the value of a minter’s debt exceeds the value of the ETH they deposited divided by 1.4 (takes the liquidation ratio into account)

How to Change RAI’s Denomination

If we want to change RAI’s denomination, we have to swap the ETH feed from ETH/USD to ETH/INDEX. INDEX can be anything we want from bricks to a custom CPI. Once we do this change, we start to denominate all collateral in the system in INDEX and thus RAI inherits this denomination.

To minimize RAI market price disruption, the change should be done in a way where the new RAI redemption price value is close to the old USD denominated one (in terms of dollars). We can visualize the change as follows:

  • Let’s assume the new denomination we want is XAU and that 1 USD = 0.0005710894 XAU. The current redemption price of $3.03 is equal to 0.001730400882 XAU. In this scenario, we can also say that one unit of value in the RAI protocol is equal to 0.0005710894 XAU and the redemption price is equal to 3.03 of these units. I’ll call one of these units a UNIT
  • We find an ETH/UNIT oracle and determine the ETH price in terms of one unit of value in the RAI protocol. Assuming 1 ETH = 3000 USD, 1 ETH is also equal to approximately 3000 UNITs
  • Similarly, we should create a RAI/UNIT oracle that we can use to feed data in the controller
  • In one transaction, we change the ETH/USD and RAI/USD oracles to ETH/UNIT and RAI/UNIT

Ungovernance

The question now is: is it possible to change RAI’s denomination post ungovernance (August 2022)? Given that we should leave governance for the ETH and RAI market price oracles, the answer is a clear yes.

7 Likes

This is fantastic to see written out! Do you have any ideas for a good index/denomination? If I recall from our convos, CPI is a lost cause, so I’d be interested to hear other ideas.

Suggestions were basket of currencies, basket of metals and basket of commodities.

Probably no option will satisfy a large enough group of people.

Great post!

I think the only practical option as index is a basket of fiat currencies. This would make RAI freer from the USD while still measuring a meaningful unit of account that matter in people everyday life.

The problem I see with XAU or a dampened ETH index (something like a moving average feed) is that it breaks the leverage use case for Safe owners. First, It would be hard to reason about you liquidation price in Gold/ETH. Then, is there really a market for leveraging ETH against gold ?

CPI is way too political and corruptible. I don’t think it is suitable for ungovernance.

The basket of currencies still makes it a bit harder to reason about your liquidation price but it’s more doable since on crypto standards the fluctuation between USD and other major fiats is pretty insignificant.

The simplest would be to start with the SDR basket and keep the weights adjustable. Chainlink is already supporting a bunch fiat:

This is a bit against the title of this post :stuck_out_tongue_winking_eye:

But it’s probably one of the easiest solutions

2 Likes

I don’t think you’re going to find anything that’s going to satisfy a lot of people other than USD or SDR or another basket of currencies like @Guifel suggested.

Central banks and governments do an ok job at keeping fiat prices stable relative to assets that most people buy (e.g. food, gas, shelter). If prices change too fast they just change taxes, subsidies, etc. to offset the price. Or, as @stone alluded to, they change what’s included in the CPI basket.

I would definitely keep RAI stable relative to USD (or SDR) but I think RAI forks that are stable relative to other assets would be awesome too.

gRAI (gasRAI) that’s stable relative to base fee gas prices. Starting price would be something like the amount of ETH needed to make an ETH transfer from one EOA to an existing EOA. There’s some teams that are working on this but my impression is Reflexer has a huge head start.

A lot of us are degenerate apes who spend significantly more on gas prices than we do on real world stuff such as food, shelter, girlfrens. Being able to hedge against changes in gas price would be used a lot.

Electricity:
eRAI: I’m definitely not an expert on this but there’s decent electricity price feeds and I know a select few market makers are making good money off this at everyone else’s expense. Electricity prices only make up ~3% of the CPI but are pretty correlated with other prices because electricity is a major input in a lot of things that we buy.

Peak electricity prices are really volatile and right now this market is pretty closed off to everybody except institutions and large consumers/producers.
I don’t know if major BTC/ETH miners are currently participating in this market but there definitely should be demand from miners of every size. A big problem with synthetic electric RAI is that the eRAI market would get bigger than the real market and weird shit happens at that point (the tail starts wagging the dog).

I threw together a graph with data from here to show how volatile this is for one of the bigger markets ("Mid C which is most of the West and Northwest except California).

I’ve said this before but ideally I would hold a basket of tokens that are pegged to my expenditures, as opposed to CPI. (30% e.g. California rent, 10% california gasoline, 10% California electricity, 5% price of burrito at Chipotle, 1% ape lamps…)

2 Likes

You’re probably right and in the long run I also see multiple RAI like assets catering to different groups.

gRAI is pretty volatile though, I also saw a couple teams working on gas synths but volatility seems to break UX.

1 Like

Any idea on what the maximum volatility a RAI fork can handle is?

This is median gas price for 1000 blocks (~4 hours) and then the rolling average of the median price for ~24 hours. (Using median for a bunch of reasons but base fee should look pretty similar).

It looks really volatile here but rolling average is like the simplest way to do this. Average volatility for the rolling average is ~3% difference over 4 hours. It does occasionally hit ~25% though so that’d cause problems for a RAI-like system – I haven’t played with different ways to dampen it yet though.

Hey!
Couple of points to add to discussion, some maybe obvious(please ignore if so :slight_smile: ):

There are only 2 ways that stability can be achieved. Peg to some external asset, or to itself (probably like the more - some long term moving average 200 weeks or so)

  1. external asset
    think that currently USD pegged assets are the most dominant ones because it is the natural shelling point (amongst other reasons) as USD is still basically the world reserve currency.
    Here the second best thing seems to be SDR since it already exists, would seem like more natural shelling point that something that we just make up on the spot, even if what we make up has slightly better properties. Think it is important for future growth and people coming from tradfi to use something comprehensive that already exists and is easy to understad, hence SDR. If you remove dollar from the picture and want achieve more neutrality that seems like the only reasonable option. Other contries’ currencies seems like a step back, and IMO pegging to gold or other commodity / asset defeats the whole purpose of stablecoin. There is no other assets besides traditional fiat currencies or their derivates that is really “stable” from short term perspective, which I think most users care about since their expenses are in fiat, not in gold or coffee. Gold and all the commodities are really volatile and highly unstable in the short term. CPI is highly arbitrary and is being manipulated all the time by its creators and does not really seem like a good option.

  2. internal asset
    In this case collateral and most trustless asset in Ethereum is eth. It might be really neat to use some easy to understand(!important) moving average, e.g. 200week simple moving average that would the mechanism target. It is true, that it is still piggybacking the mechanism back to the USD, but think this would not be a problem. The only thing that it sacrifices is possible USD depreciation against other currencies.

This is actually not the case if you have some really long-term moving average in weeks / months it would be practically indistinguishable from pegging to USD in the short term, the appreciation shows only in the long term. Is also up to governance to decide, how much the lag should be. Here is a simple 200w moving average(candles by weeks), you can see on the graph that it is moving up in dollar terms, but not really by much…

Also it makes the change really small + predictable, if you target moving average in years.

2.1. tradeoffs - pricewise
This would solve the case of dollar depreciating in buying power and real value in the long term, while on the other hand it would still keep the short term stability against dollar and by proxy to other fiat currencies, which IMHO is the main purpose of stable coins. It would not address the issue of dollar depreciating against other currencies, but here I would say one can make a strong case that compared to other currencies, dollar being the world reserve currency does not have that much of a downside. (also how much SDR is proportialy made by USD? what is the correlation USD/SDR? would guess really high). Even if dollar looses its status of reserve currency, it does not seem highly plausible that Yuan or other fiat currency would take its place. Some other upcoming world reserve currency which would replace the dollar seems like the only other reasonable scenario under which it would make sense to go through the process of targeting to SDR. As I have argued the only other alternative that is better from stability standpoint is some basket of currencies(SDR) and I would argue that it is not really by much.

2.2. More self contained / less external reliability
The advantage here would be, that it makes the system less reliant on external oracles, since there are already very liquid ETH/USD AMM pools that could be taken as a price feed input. Also, there are already many Cryptodollars on Ethereum. Both of these facts could be leveraged, so that the final price feed fed to the mechanism is very robust and works in case of any particular cryptodolar failure(to keep the peg) or AMM failure (smart contract failure). Conversely the lack of price discovery directly on Ethereum for practically any other other “real world” asset (gold, other currencies) makes it completely dependent on external price oracles…

2.3. Providing short term stability / long term bullishness on eth / long term bearishness on USD + other fiats by proxy.
This would also provide RAI with real differentiation point compared to other stable assets. IMHO to normies / tradfy most cryptodollars seem same / similar, this would make Rai really meaningfully different.

2.4 Drawback - Possibly harder to explain to normies, how is it stable if it targets moving average of eth price.

Thank you for the thoughtful post :ok_hand:

I think this could be considered as an option although I still wonder if RAI minters will like it. We could debate for years on denomination and it’s almost guaranteed the end state will be that some people won’t like the decision. This is why we’re more focused on RAI adoption and building something solid.

Projects like FLOAT tried to make some fancy CPI denominated synth but they got nowhere. Priority should be growth and ungovernance imo.

I just thought of this idea and wanted to share it here.

Every living thing has one thing in common: the need for water. Specifically clean drinking water for humans.

If we use ETH/X amount of clean drinking water, we can ensure the purchasing power in terms of water for RAI holders remains consistent on average.

Thoughts for this far-fetched idea?

Hmm how do you get an oracle for that?

It would be amazing if Chainlink could be convinced to build an official data feed for the price of water.

Or someone could build a custom oracle using Chainlink Keeper or some similar oracle solution.

The hardest part is finding reliable, accurate, and up-to-date data used for the calculations.

Off the top of my head, here’s how such a custom oracle solution would work for the price of water.

  1. Identify countries with regulations on water quality for selling bottled water to standardize the quality of water being considered.
  2. For each of these countries, get two data points: the amount of water being sold to consumers, and the price per liter.
  3. Then from these, calculate a volume-weighted average and perform the needed currency conversions to get the average price of water. Update the price about as frequently as the underlying data sources are updated (which is annually maybe?)
  4. Have some additional controls to prevent manipulation (in addition to the oracle solution’s controls).
  5. Then when switching the target to ETH/water, do it in the ratio of 1:X where X is the amount of water in which the USD value of this ratio matches the current USD redemption rate.
1 Like

Considering public water is my main IRL thing, thought to bring my contribution to this subject with a short study on water and how is it perceived as a world commodity – a rather scarce one nowadays.

Also, this post contains means to go further with denominating RAI in water units of value, using a water oracle, if this would be something the community would consider doing in the future.

First, a few considerations on the value vs price vs cost of water:
Water is a natural resource, indispensable to life and despite being a free commodity, it holds unquantifiable value for humanity, being that on Earth or soon to be in an interplanetary context.
We must not confuse though water resources (groundwater, rivers, basins, etc.) which are free public resources with public water services consisting in collecting, treating and supplying to households/community wells and have a cost. There is also the concept of price of water which is the invoiced cost to users and can be higher but also sometimes can be insufficient to ensure quality or maintenance of utilities (especially the case in underdeveloped countries). Retail water data and prices are highly centralized and I don’t believe should be used as an public indicator of value.

Water value = 0 and ∞ simultaneously
Water cost = the cost of collecting, treating and supplying to households/community wells
Water price = the invoiced cost of water to households/individual consumers

For the purpose of using water as RAI denominator, we need to be able to work with trusted, immutable, public water data that can be used on-chain. The data sets that could be used in this post’s scope are related to the price of water, an indicator that can be pulled out or calculated from trusted public APIs like World Bank, OECD, European Commission, UNDP, UNICEF, etc.

The resolution of the 2101 UN General Meeting which recognised every person’s right to water states that it should be fit to drink and easily accessible but also that it should be financially affordable for everyone.
At the moment there is no universal standard in calculating the price of water, but there are studies and even national and EU bills that were voted in the last 10 years. Several United Nations bodies were more specific, estimating that, irrespective of the country, the water budget of households should not exceed a certain percentage of their resources.
Generally, a 2-8% percent of the net average available income of households is attributed to pricing of water resources and sanitation services

So, reverse-engineering this, would get us to be able to calculate the world’s water price rather easy as a weighted average of water bills around the world (or at least at the expanse of existing trusty public data) as a percentage of net average available household income.

This would retrieve a value in i.e. USD / m.u. (i.e. cubic meter) that can be used to set the value of one UNIT as per @stone 's example:
Let’s assume the new denomination we want is WATER and that one cubic meter of water is calculated by the above concept at 1.5 USD. 1 USD = 0.6666666666667 WATER. The current redemption price of $3.06 is equal to 2.04 WATER. In this scenario, we can also say that one unit of value in the RAI protocol is equal to 0.6666666666667 WATER and the redemption price is equal to 3.06 of these units.

Actions required:
• Finding an ETH/WATER oracle.
There isn’t one, yet. Working IRL on a project I mentioned here we realized first hand that there are no data nodes pulling public APIs data regarding water. There are close to none in regard to public environment data in general, other than weather.
There is some breakthrough though because the aforementioned project is advancing with Chainlink Labs in setting up a water data node that mines World Bank, OECD, European Commission, UNDP, UNICEF water related data and will be able to offer oracles trusted water data. This data is aggregated and not in real time, with quarterly updates, but for the scope of calculating one water unit of value could just be enough. This will be relatively easy to produce, either by setting up a data node, or using Linkpool’s out-of-the-box service solutions.

• Creating a RAI/WATER oracle that can feed data in the controller

• Changing in one transaction the ETH/USD and RAI/USD oracles to ETH/WATER and RAI/WATER

2 Likes