Bonded Stablecoins Version 2: Better Price Stability And Stakable Tokens
When we introduced Bonded Stablecoins in September 2020, the concept was absolutely new to the market and we had no experience that would guide our design decisions. Now, after having the stablecoins in the wild for more than 6 months, we release an updated version that addresses the problems we discovered.
The parameters we chose for the first version of Bonded Stablecoins require specific behavior from the holders of T1 (growth) tokens in order to keep the peg. This behavior is supposed to be profitable, but only when there is belief among traders that the price will soon correct to the target. Unfortunately, this often was not confirmed in practice because keeping the peg required large inflows of capital into T1 tokens when new T2 tokens were issued or when T2 target price was growing. Also, it might be difficult to understand that one can profitably trade T1 tokens when the price of another token — T2 — goes off-peg.
This problem is specific for the range of parameters we chose for the first iteration of stablecoins: m > 1 and n < 1. As a reminder, we used the following bonding curve formula:

where s1 and s2 are the supplies of token 1 and token 2 respectively, while token 2 is supposed to follow a target price.
The prices of the tokens p1 and p2 are partial derivatives with respect to the corresponding supplies:

We chose n < 1 parameter to ensure that in order to keep p2 constant, more T1 should be bought as T2 supply grows, and T1 ownership would become widely distributed as more buyers join. The choice of m > 1 ensures that p1 grows as more T1 tokens are bought, which is the right incentive for buying T1 when it is needed for correcting the price to the peg.
The choice of n < 1 also meant that p2 goes down as more T2 tokens are bought, which is not what traders are used to — in all other trading environments, when you buy something, its price goes up. However, this was supposed to be compensated by the “natural” behavior of p1, which would make traders buy or sell T1, and the p2 would get corrected back to the peg because it also depends on T1 supply.
Version 2
We initially rejected the n > 1 option as it would imply that in order to keep p2 constant, T1 needs to be sold as T2 supply grows, and there are two issues with that:
- the user base of T1 holders would shrink leading to more concentrated, centralized ownership;
- T1 holders might be reluctant to sell their token while its price grows, and the price would stay off-peg.
The advantage of n > 1, which made us consider this option again, is that it makes price behavior of T2 token natural: its price grows as T2 is bought and goes down as it is sold, which makes it possible to correct the price of T2 by buying/selling T2 itself, without invoking another token.
In version 2, we use n > 1 thanks to the natural behavior of T2 price that this parameter choice provides, and introduce a solution of the above mentioned problems.
Decision engine and stability fund
To solve the problems of perverse incentives of T1 holders and centralization of T1 ownership, we introduce a stability fund which will be the sole owner of all issued T1 tokens, and investors who want to get exposure to T1 price would need to buy shares in the fund instead. There will be no T1 in free circulation, only the fund will be allowed to hold the tokens. The fund is a simple AA that holds its assets, issues shares, and redeems shares. The assets that it can hold are T1, T2, and the reserve asset (GBYTE by default).

We no longer rely on T1 holders to keep the peg, instead that’ll be done either by T2 traders or algorithmically by another AA — decision engine AA. The decision engine (DE) will send instructions to the fund to buy or sell T1 or T2 tokens, and its decisions are designed to achieve two goals:
- keep the peg;
- increase the value of the fund, i.e. shareholder value.
What’s important, the decision engine can be replaced by governance vote of the shareholders (fund shares will be used for voting instead of T1 tokens which were used in version 1) if they feel like another engine would better achieve the above goals.
The default decision engine will work as follows:
- if p2 goes below the peg, the DE will not interfere initially. It will wait for arbitrageurs to buy T2, thus increasing its price and getting it closer to the peg. An increase in T2 supply is beneficial to the shareholders as it increases T1 price.
- if p2 stays under the peg for too long (12 hours by default), the DE will instruct the fund to buy T1 to bring p2 back to the peg. The fund will have to use some of its reserve currency assets to buy T1. The anticipation that the DE would eventually increase the price to the peg, should make traders want to buy T2 earlier, while it’s still cheap, thus increasing the p2 price and making the DE’s intervention unnecessary. If this doesn’t work however, the DE will use the fund’s money to correct the price, as being able to keep the peg is the primary goal that makes it sustainable.
- if p2 goes above the peg, the DE will immediately redeem some of the fund’s T1 tokens for the reserve asset. This behavior allows the DE to cash out its T1 for the reserve asset, which can be withdrawn by the shareholders or used later to support the peg if the price deviates in the opposite direction. The DE could abstain from interfering, like above, and allow the arbitrageurs to bring the price back to the peg by redeeming T2 but this would be contrary to the shareholder interest as the decrease in T2 supply would decrease T1 price.
- The DE never buys or redeems T2 except for one initial transaction that issues the first T1 and T2 simultaneously. The T2 bought in this transaction stays in the fund forever (unless the DE is replaced and the new algorithm decides to do something with the tokens).
So, in version 2, instead of waiting indefinitely for traders to correct the price, the DE would automatically fix it or give the traders limited time to correct it when their incentives are straightforward.
The combination of DE and stability fund is similar to arbitrage AA we used with version 1 coins. Unlike version 1 however, the DE won’t have to interfere as often since T2 traders already have the right incentives to fix the price, and thanks to n > 1, the fund won’t require as much capital since buying T1 is no longer necessary to keep up with the growing supply of T2. The idea of making T1 available to arbitrage AA only was first suggested by @barborico soon after the stablecoins were launched.
The DE will be automatically pinged by the bonding curve AA after every transaction, so it can immediately learn about the new p2 price and act if necessary. It can also be woken up manually or by a bot, e.g. when no new transactions happen but oracle price changes.
Stability fund shares
Investors who anticipate growth of T1 price thanks to the growing issue of T2 tokens can invest in the shares of the fund, which is the sole owner of T1 tokens. They buy shares for the reserve asset (GBYTE by default) by sending it to the DE, and the DE forwards it to the fund. New shares are issued for each investment, their price is determined based on the current worth of the fund’s assets and the current number of shares outstanding. The reserve currency used to buy shares is just added to the fund’s assets, it is not sent to buy T1 immediately, so the investors can buy as many shares as they like without moving the prices and paying any fees.
As investors buy shares, the amounts they pay for shares increase the share of the reserve currency in the fund’s portfolio. Thus, the fund can be seen as a solution of T1 tokens within the reserve currency.
As more investors join, the concentration of T1 in the solution decreases, thus decreasing the shareholder exposure to T1 price. At some point, it might get too low, e.g. 10%, and make it less attractive to new investors while causing some old investors to leave. If T1 appreciates, its share in the fund’s portfolio naturally increases, e.g. to 20%, making the fund more attractive to new investors again.
Thus, to bet on growth of stablecoin issuance, one needs to buy the stability fund shares, similar to buying T1 in version 1 coins. However, the growth of SF shares is dampened by the reserve currency part of the fund. The same applies to downside risk.
The fund can use the reserve currency it got from investors to buy T1 when this becomes necessary for keeping the peg. Buying T1 increases its price, and therefore, the share price, so it is profitable for the shareholders, at least short-term. However, the shareholders bear the risk that T2 supply would decrease, thus decreasing T1 and share price. If this happens for an extended period of time, the fund would have to keep buying T1 in order to keep the peg, and it would need the reserve currency for that. That’s why it is important to accumulate significant reserve currency stash in the fund while its prospects seem rosy, so that in difficult times the shareholders have enough time and resources to make governance decisions to reverse the negative trend.
Like in version 1, the stability of the peg depends on the investors’ willingness to provide capital into growth tokens (through shares). However, in version 2, the incentives of T2 traders also contribute to stability due to the natural behavior of T2 price, which grows as more T2 tokens are bought.
When a shareholder wants to redeem their shares, they are entitled to their share of the reserve currency plus their share of T1 held by the fund. Since T1 is not allowed into free circulation, the investor’s share of T1 is sold to the bonding curve and the proceeds in the reserve currency (after all fees, if any) are sent to the former shareholder. This sale brings the T2 price below the peg and the DE reacts as usual: waits for arbitrageurs to correct the price before re-buying T1 itself.
New stable tokens
Similar to version 1, T2 tokens in version 2 will also represent stable+ (interest) coins, i.e. coins whose target price appreciates relative to the chosen benchmark (e.g. USD). In version 1, to create real stablecoins, i.e. coins that do not appreciate but stay stable relative to the benchmark, we used deposits, which allowed us to strip interest off the stable+ coins.
However, the deposits-based design proved to hinder the liquidity of stable tokens since deposits can be easily closed only as a whole and only by the owner. Closing other people’s deposits entails waiting for a challenging period and again one has to close a whole deposit only.
In version 2, we simplify the creation of stable tokens by replacing deposits with a simple AA that exchanges stable+ for stable and stable for stable+ using the exchange rate that reflects that current stable+ appreciation factor. This two-way and slippage-free liquidity makes it easy to convert stable tokens back to the reserve currency (GBYTE by default).
This also means that stable tokens become “stakable” stablecoins: one can buy them in order to convert to stable+ coins, hold them, then convert stable+ back to stable and receive more stable tokens than initially invested — similar to staking in other cryptocurrencies and DeFi apps. Stakability will become especially important when we launch a bridge with Ethereum and enable direct trading between Obyte based and Ethereum based stablecoins.
Going forward
The new version of bonded stablecoins is already available at ostable.org. When creating a new stablecoin, one can choose whether to use the v1 design or v2 with decision engine and stability fund. The UI will support both, v1 coins will of course exist forever, AAs are unstoppable after all. However, we recommend using v2 with m > 1 and n > 1 for all new coins, e.g. m = 2, n = 2:

For the naming convention, we recommend using V2 suffix for v2 coins, e.g. IUSDV2, then gradually rename the existing v1 coins by adding V1 suffix, e.g. IUSDV1, then rename v2 coins to their shorter names, e.g. IUSD. For stability fund shares, we recommend to standardize their names with SF prefix, e.g. SFUSD.
With the new design, keeping the peg is almost automatic and we expect that the new stablecoins will trade much closer to the peg. We also hope that thanks to the natural price behavior of T2 tokens, they will be arbitraged against the markets where the underlying assets are traded and we’ll see more trading activity on both markets.