SLPx Pallet - A further step into the Omni-chain Liquid Staking
What is SLPx
SLP is the module used for processing vToken minting and redemption on the Bifrost chain. To mint and redeem vToken through SLP, users must first transfer their assets to the Bifrost chain, creating user experience issues.
SLPx is a recently developed extension pallet to SLP by Bifrost that will allow users to invoke SLP’s functionality on a remote chain without crossing assets into the Bifrost chain.
Specifically, SLPx will allow users to:
- Mint vTokens on a remote chain
- Redeem vToken on the remote chain
- Swap vToken/Token on a remote chain using liquidity from the Bifrost chain behind the scenes.
You can use DOT directly to mint vDOT on Moonbeam/Moonriver/Astar, and both the original and target assets are on Moonbeam/Moonriver/Astar. The whole process appears to be done on the Moonbeam/Moonriver/Astar local chain, and users are not bothered by the cross-chain interaction processes behind it. Likewise, you can redeem vDOT for DOT directly on the Moonbeam/Moonriver/Astar chain.
Remote minting and redemption provide convenience for user operations on remote chains. In addition to providing convenience, the token swaps enabled on remote chains offer a new meaning to “unified liquidity.”
You can exchange vDOT/DOT on Moonbeam/Moonriver/Astar using the vDOT/DOT liquidity pool on the Bifrost chain. In this way, Bifrost does not need to divide the liquidity of vDOT/DOT into different chains. All chains’ vDOT/DOT exchanges share the same pool depth, leading to a more negligible price impact and a better trading experience.
At the same time, if a lending protocol on any supported remote chains uses vDOT as collateral, it can directly call on the unified liquidity pool on Bifrost to complete a liquidation when it occurs. If a liquidity pool is built on a remote chain to perform liquidation, the liquidation process will likely have a higher discount rate due to insufficient depth.
The importance of SLPx
For users, the minting, redemption, and swapping of vTokens have been simplified, as they can now be directly performed on Moonbeam / Moonriver / Astar without cumbersome cross-chain operations. The unified liquidity feature will also provide users with a better swapping experience.
For applications on Moonbeam/Moonriver/Astar, integrating SLPx can bring additional to their users. For example, lending protocols can remotely convert users’ collateralized DOT into vDOT, allowing users to earn staking rewards without additional steps. Furthermore, the unified liquidity will lower liquidation discounts for lending protocols. Lastly, by integrating SLPx, applications can remotely mint, redeem, and swap all types of vTokens without the need for individual adaptations for different vToken types.
For the ecosystem development of Moonbeam/Moonriver/Astar, SLPx introduces LSD assets from different chains. The remote service capability allows users to enjoy full-chain services from other chains without leaving the native chain.
For Bifrost, the remote invocation feature implemented by SLPx is a significant milestone toward achieving Onmi-LSD.
Technical Implementation
SLPx is divided into two parts: the local pallet on the Bifrost chain and the remote pallet deployed on the remote chain (if the remote chain is an EVM chain like Moonbeam, it should be called a remote contract).
For example, when a user on Moonbeam utilizes SLPx to mint DOT into vDOT, the DOT is sent to Bifrost first, minted into vDOT, and then returned to Moonbeam. During this process, the user must interact with the remote contract and remotely call the local pallet to complete related operations. The whole procedure consists of three steps:
- Send DOT to Bifrost
- Mint DOT into vDOT
- Send vDOT back to Moonbeam
However, these three steps only require the user to initiate an interaction (pay once). After starting an interaction, all other processes are completed automatically. The same is true for the logic of remote redemption and remote swap.
This process is possible because SLPx uses XCM V3 as the cross-chain instruction format. XCM V3 specifies the instruction format that XCM V2 does not have, with one of the essential types of instructions being multi-hop executions.
The source chain can send an XCM V2 message to the target chain and define how the target chain executes it. No instructions in XCM V2 allow the target chain to execute the message by initiating a new XCM message.
However, with the addition of this type of instruction in XCM V3, the source chain can send an XCM-001 message to the target chain, have the target chain do a series of executions, and then initiate a new XCM-002 message to any third chain (which is equivalent to an acknowledgment message if the third chain is the source chain itself). In short, XCM V3 allows an XCM message to command another chain to initiate another XCM message.
Also, after the XCM-002 message reaches the third chain, according to the message instruction, it can continue to initiate a new XCM-003 message. This is the multi-hop transmission, and this multi-hop chain can theoretically be infinite. As long as the user on the source chain pays enough fees, the message can complete multi-hop execution until its logic terminates.
In the remote minting use case of SLPx, after the user destroys the DOT on Moonbeam/Moonriver/Astar, calls the remote contract and an XCM message is sent containing the following instructions to the local pallet:
- Mint DOT in Bifrost (Burn-Mint logic transfer asset)
- Mint DOT to vDOT on the Bifrost chain
- Lock vDOT on the Bifrost chain
- Send an XCM command to the remote contract to mint vDOT (Lock-Mint logic transfer asset) on Moonbeam/Moonriver/Astar.
From step (4), we can see that one XCM command initiates another XCM command on the pallet on the command target chain.
SLPx Implementation Progress
We have deployed the SLPx remote pallet/contract on Moonbeam, Moonriver, Astar, and Ethereum. We will continue to deploy it on Acala, Karura, Filecoin, and Shiden in the future.
The remote pallet/contract has completed code auditing, and the audit report can be found at: https://www.commonprefix.com/projects/bifrost
In addition, we have developed the front-end application for Omni LS dApp. Users can experience a range of functionalities such as remote minting, remote redemption, and remote swapping through the Omni LS dApp on these chains.
Conclusion
SLPx serves as Bifrost’s technical solution to achieve its Omni-LS vision. Chains that deploy the SLPx remote module will be able to invoke the SLP module on the Bifrost chain, enabling remote minting and redemption of vTokens.
This novel interaction method brings convenience to users and provides a convenient cross-chain integration path for developers on remote chains.