Virtual reserve is an implementation of Bancor liquidity pools that can be used to increase the liquidity of a pool for the sake of conversion calculation and price slippage.
Virtual reserve (VR) can make any liquidity pool up to 10X deeper, reducing price slippage by 10X and allowing low-liquidity pools to better handle larger transactions.
Also, for liquidity providers, it can potentially enable more transactions at larger sums resulting in more fees being collected in the pools.
NOTE: Virtual Reserve is in beta. Use it at own your own risk. It is recommended that virtual reserve is only used on liquidity pools with minimal divergence in the underlying asset prices, such as in stable/stable liquidity pools or wrapped-asset / asset pools.
How do I activate virtual reserve (VR)?
You can activate virtual reserve while creating a new liquidity or you can activate VR on an existing liquidity pool.
In both cases, you will need to call the “enableVirtualBalance” function on the converter. Please note, only the owner of the converter can call this function.
Input value: integer between 100-1000 (this indicates 100% to 1000% virtual reserve, which basically means, the reserve is set to 1X - 10X the physical reserve)
You can easily execute this on Etherscan using MetaMask:
- Go to etherscan
- Enter the converter address (you can execute the transaction only from the wallet that owns the converter)
- Click “contract”
- Click “write contract”
5. Connect your metamask to etherscan
6. Scroll down to fine “enableVirtualBalance” function
7. Input value 100-1000
8. Click “write”
9. Sign the transaction on MetaMask
What are the constraints of Virtual Reserve?
Once you set the virtual reserve, the contract looks at the current balance and adjusts it based on the value passed in the enableVirtualBalance function. For example, a pool with $50 worth of tokens in reserve and set to 10X virtual reserve will calculate a conversion as though there are $500 worth of tokens in reserve.
The current virtual reserve mechanism is not dynamic and does not respond to changes in the pool’s reserves (i.e., “liquidity depth”). If more liquidity is added in the future, you should consider calling the function again to re-adjust the virtual reserve settings.
It is recommended that virtual reserve is only used on liquidity pools with minimal divergence in the underlying asset prices, such as in stable/stable liquidity pools or wrapped-asset / asset pools. Implementing VR in pools with divergence in underlying asset prices could lead to large transactions causing the pool to “lock up” and large transactions failing.