LST Stable Swap
Last updated
Last updated
Bifrost Stable Pool is designed to facilitate related exchanges between vToken and Token that are expected to have similar values, such as vDOT-DOT, vETH-ETH, vKSM-KSM, etc. The Bifrost Stable Pool uses Stable Math (based on StableSwap, widely promoted by Curve), which allows for large-scale exchanges to take place before encountering significant price impact, greatly improving the capital efficiency of vToken-Token exchanges.
As vToken is a yield-bearing token, its value will gradually increase over time compared to the corresponding Token value. Therefore, the liquidity supply anchor of vToken and Token in AMM should change with the vToken exchange rate to avoid loss for liquidity providers. The following is a comparison between pegged stable swap and correllated stable swap.
Pegged Stable Swap
Tokens that swap near 1:1, such as two stablecoins of the same currency
Correllated stable swap
Tokens that swap near 1: R with some slowly changing exchange rate R, like vToken (eg: vDOT, DOT)
In Stableswap, the size of function A determines the range of stable exchange rates supported in the Stable Curve. The larger the A value, the more liquidity is available to support constant prices. Conversely, the smaller the A value, the less liquidity is available to support constant prices. For mathematical details about the A value, please refer to Invariant.
To facilitate user understanding, we express the value of A in Stable Swap as an improvement in liquidity efficiency compared to Uniswap V2.
As shown in the above figure, 100 times liquidity efficiency means:
"Exchanging 100 BNC in the stable pool with the same liquidity is equivalent to exchanging 1 BNC in the Uniswap V2 pool."
Let's take an example. Suppose a liquidity pool has the following liquidity (assuming the exchange rate between vDOT and DOT is 1:1):
vDOT | 501.1872 |
---|---|
DOT | 501.1872 |
When a user exchanges 100 vDOT for DOT, the following results will be presented:
Input | 100 vDOT |
---|---|
Output | 90.8539 DOT |
Swapped Price | 0.90854 |
Slippage | 9.146% |
Input | 100 vDOT | |
---|---|---|
Output | 99.9958 DOT | |
Swapped Price | 0.99996 | |
Slippage | 0.004% |
Input | 100 vDOT |
---|---|
Output | 90.8539 DOT β 99.9958 DOT |
Swapped Price | 0.90854 β 0.99996 |
Slippage | 9.146% β 0.004% |
Since the Stable Math equation is quite complex, determining the invariant, D is typically done iteratively. For an example of how to do this, please refer to: https://miguelmota.com/blog/understanding-stableswap-curve/
This invariant has the following properties:
When the token prices are closed to equilibrium(1 to 1), itβs performing close to a constant sum curve;
When the token prices are shifted away from the equilibrium, itβs performing close to a constant product curve.
The further the token prices are shifted away, the more slippage the invariant produces. This ensures that the pool can always provide liquidity even at extreme prices.
Enter bifrost.app and click "Swap" on the left main navigation menu to enter the swap page
Switch the token to the desired token through the token dropdown menu on the token name
Enter the number of tokens that need to be swapped, and verify the output of the transaction (price impact).
Click the "Swap" button to confirm the transaction and complete the signature