I was thinking of one idea recently. About how could we have a stable coin pegged to USD on IC in a more reliable way than usual. It’s not like a proposal or something, just wanted to share with someone. Let me know what you think.

There is a lot of stable coin projects on Ethereum and other chains. Some of them work by holding real USD in their bank accounts, like Tether. Some of them over-collateralize using volatile currencies, like DAI. There is also a relatively new thing with algorithmic stable coins, like UST. Also, on the IC we kinda have a stable coin in form of cycles. Yes, it is not intended to be used as a fully-featured currency (although there is XTC from dank), but worth noticing anyway.

It seems like there are many approaches to this problem and nobody knows which one is better. Some say, that you have to have a real dollar available for each of your coin, like in USDT. But other argue that USDT is very unreliable and gonna fail like literally tomorrow. Some say that algorithmic stable coins are the future, but we all know what happened to UST.

Each of them have their weaks and strongs, some of them may fail, but other will survive. So it got me thinking, what if on IC, since we’re able to interact with eth-like networks, **we could create a stable coin that will be pegged not to real USD, but to a basket of these existing stable coins instead?** To diversify the stability, as one can say.

Just like they did with XDR. Let’s create a basket of, for example, five existing coins: USDT, USDC, BUSD, DAI and TUSD. Let’s vote (and re-vote each month or so, or even make it dynamic based on volatility of each token) on what the target proportion this basket should always have (e.g. 30% USDT, 30% USDC, 20% BUSD, 10% DAI, 10% TUSD). So, if, for example, Tether de-pegs by 10%, our token will de-peg only by 3%.

And let’s add an algorithm to support these proportions. If you’re depositing these stable coins and you keep the proportion (by simultaneously depositing each of these 5 tokens), then you get the exact amount of the IC’s stable coin back. If you’re depositing coins and break the proportion (depositing, for example, only USDT, when there is already enough USDT in the basket), you get a little bit less of the IC’s stable coin back. And if you, in contrary, restoring the proportion (there was not enough USDT, and you’re adding it up), you get a little bit more of the IC’s stable coin back.

With an algorithm like this some people might want to start arbitraging the proportion which will always keep the basket in shape. And since the basket is always stable, we should always be able to tell how much loss will happen if one of these underlying stable coins goes down.

It is not clear to me, what do you do if, in such a system, one of underlying assets goes down really hard, like how it was with UST. It seems like there should be some kind of additional reserve (maybe volatile), that we could use to create an incentive for people to replace de-pegged tokens with healthy ones. But in any case, even if one of them goes down 100%, for our coin it will only do a fraction of the damage, since everything is diversified.

I understand, that any idea like that has to be carefully refined. This is economics, and everything should always sum up to a non-negative value. Transactions on these networks are paid by the transactor, so if we want to make these transaction from our canisters, we have to find the money somewhere. But it also seems, that we could find some of these money in the proportion keeping algorithm and collecting fees from transactions made with this new stable coin itself. Also we could only target cheap eth-networks, like Matic and Binance chain.

Implementation seems simple in idea, but tricky in practice (as it is always with ethereum). Starting from the fact that we would have to interact with some semi-centralized node providers, like Infura and we would have to listen for eth events somehow. But it seems doable.

What do you think?