Liquid Collective Platforms can use to custody digital assets.
Fireblocks is an easy-to-use platform to create new blockchain-based products and manage day-to-day digital asset operations. Fireblocks provides an MPC-based wallet allowing users to store their digital assets.
This guide will provide Platforms with a step-by-step process for using Fireblocks to interact with the Liquid Collective protocol.
Fireblocks' offerings are third-party products that are not offered by or in partnership or affiliation with Alluvial. Products and services offered by Fireblocks and other third parties are subject to separate terms and conditions. Please visit for more information. Any links provided are for your convenience and informational purposes only. Inclusion of any link does not constitute an endorsement or an approval of any such third-party products by Alluvial or any other Liquid Collective protocol service provider.
Architecture
Below is an example architecture for a Platform that uses Fireblocks as a custodian when the Platform's users stake ETH and/or redeem LsETH.
Implementation
This guide uses the Goerli network and the Alluvial Staging API.
Now that you have an address associated with your Fireblocks account, you will create a Depositor object and add the wallet address to the Liquid Collective protocol Allowlist via the Alluvial API.
Stake ETH
Now that you have successfully added your wallets to the Allowlist you can continue with staking.
In order to interact with the Liquid Collective protocol you will need to invoke Smart Contract functions.
Now you can implement the LsETH redemption flow, providing your users the ability to redeem their LsETH for ETH.
Redeem LsETH
The next step is to allow the allowlisted wallets the ability to redeem their LsETH for ETH, thereby burning their LsETH.
There is a two-step process to receive the redeemed ETH. First, you will create a RedeemRequest that results in a redemption ID being returned. Once the redemption has been satisfied (full or partial) you can make a claimRedeemRequest call.
This implementation will take advantage of the Fireblocks SDK, specifically the Javascript SDK. Please follow the to install the appropriate dependencies.
Admin permissions are needed to add ERC-20 digital assets to a Fireblocks account. Please review this information on .
The steps for onboarding and adding to the Allowlist can be found in the . Come back to this guide once your wallet(s) have been successfully added to the Allowlist.
This guide will use the Fireblocks Ethers.js provider, created by the Fireblocks team. To install read the .
Goerli can be found
Mainnet can be found
For more information check out .
The first function you will call is the .
You can retrieve the request redeem ID either via the Alluvial API or by listening the the Redeem Manager contract events. More information can be found .
In order to get the Withdrawal Event ID, invoke the or call via the .
The resolveRedeemRequest function returns the status of the Withdrawal Event ID. More can be found .
To see the status of the claim you can either listen for events or use the Alluvial API. More information on the claiming process can be found .