Liquidity transfer from Fantom to Sonic
Last updated
Last updated
CrossCurve liquidity pools are starting their migration from the Fantom network to the Sonic network (learn more here). In this step-by-step guide, we will explore how to safely and profitably transfer your liquidity.
Please carefully read the entire list of required actions for transferring liquidity before starting the process.
When migrating to Sonic, the architecture of the pools changesβinstead of pools with 8 directions, paired pools are now used. Therefore, before transferring liquidity, please decide which paired pools you will transfer your liquidity to and how you will do it:
You can simply withdraw liquidity from a pool with 8 tokens and distribute it across 8 corresponding paired pools.
Alternatively, you can divert all liquidity from such a pool to a single paired pool or split it across several.
Itβs also important to understand that, unlike the previous architecture, paired pools now include not only the directional token (synthetic) but also a "universal" token (xfrxUSD for USD, xfrxETH for ETH, and scBTC for BTC assets). Thus, transferring liquidity will require both the destination token and the "local universal" token.
There are numerous ways to transfer liquidity, and itβs impossible to describe every scenario, so weβll outline the key general steps:
Choose the pool to which liquidity will be transferred, for example, xsArbitrum.
Determine how many of each token is needed. In the Arbitrum example, youβll need 25% frxUSD tokens and 25% scUSD tokens to obtain 50% xfrxUSD and 50% sUSDC_arb (percentages are based on the total liquidity planned for transfer to the xsArbitrum pool).
Obtain the synthetic token corresponding to this directionβin this case, sUSDC_arb.
For USD and ETH pools, youβll need to obtain xfrxUSD or xfrxETH tokens, respectively. To do this, in Sonic, you need to acquire frxUSD, scUSD, frxETH, and scETH accordingly. For example, youβll need equal amounts of frxUSD and scUSD to deposit into the CrossCurve frxUSD pool.
Deposit the universal token and the destination token (synthetic) into the paired pool. In our example, youβll need to deposit xfrxUSD and sUSDC_arb into the CrossCurve Stable ARB pool.
If you provided liquidity to CrossCurve pools on the Farms tab in the Fantom network, youβll need to follow these steps to transfer your funds from the Fantom network to the Sonic network:
Unstake your position on the Farms page.
Decide which pools your liquidity will be transferred to:
You can distribute liquidity across 8 directions.
You can choose one or several directions.
Decide which method youβll use to transfer liquidity:
In Easy Mode, directly swap LP tokens from the pool for the required tokens.
Note: This may result in losses due to conversion and slippage. For low liquidity pools and large amounts, losses can be significant.
Examples of swap directions in Easy Mode:
xSTABLE β sUSDT_eth
xSTABLE3 β sUSDC_arb
xSTABLE2 β sUSDC_ba
In Balanced Mode, withdraw 8 synthetic tokens from the LP token and swap them directly.
This method is more labor-intensive but allows for the most cost-effective swaps and is better suited for large liquidity amounts.
Examples of swap directions in Balanced Mode:
s3CRV_e β sUSDT_eth
s2CRV_ar β sUSDC_arb
s4pool_b β sUSDC_ba
Swap your FTM for S (or obtain S) to pay for gas (gwei).
Obtain the universal token for paired pools:
For USD pools, obtain the LP token xfrxUSD.
For ETH pools, obtain the LP token xfrxETH.
For BTC pools, obtain the scBTC token.
Obtain a synthetic token corresponding to the desired direction (e.g., sUSDT_eth, sUSDC_arb, sUSDC_ba, etc.)
Deposit liquidity into the pools:
To obtain xfrxUSD, deposit frxUSD and scUSD into the pool.
To obtain xfrxETH, deposit frxETH and scETH into the pool.
Lock liquidity in the new pools on the Sonic network to earn profits.
Important Note: Rewards distribution in CrossCurve pools on the Fantom network will end at the conclusion of the current epoch. Voting for these pools and reward distribution to DAO participants in these pools will be paused. Starting from the next epoch, voting for reward allocation in the new pools on the Sonic network will begin.
Each paired pool in the Sonic hub-chain consists of two tokens:
A universal tokenβan asset from Sonic, common for all pools of the same type (xfrxUSD for USD assets, xfrxETH for ETH, and scBTC for BTC).
A synthetic derivative, backed by the original asset locked in the Consensus Bridge. This can be either a single asset or LP tokens from Curve.
Universal tokens come in three types:
For USD pools: LP token xfrxUSD.
For ETH pools: LP token xfrxETH.
For BTC pools: scBTC token.
To obtain xfrxUSD, follow these three steps:
Obtain frxUSD on Sonic.
Obtain scUSD on Sonic.
Deposit frxUSD and scUSD into the CrossCurve frxUSD pool to receive xfrxUSD.
You can obtain frxUSD and scUSD in various ways; below are a few methods.
In the first transaction, confirm the spending of funds by clicking Approve Spending and signing the transaction in your wallet.
In the second transaction, deposit the funds by clicking Deposit and signing the transaction in your wallet.
After the transaction is successfully confirmed on-chain, your wallet will display the amount of received xfrxUSD LP tokens.
To obtain xfrxETH, follow these three steps:
Obtain frxETH on Sonic.
Obtain scETH on Sonic.
Deposit frxETH and scETH into the CrossCurve frxETH pool to receive xfrxETH.
You can obtain frxETH and scETH in various ways; below are a few methods.
Obtaining scETH or frxETH Using the Jumper.exchange aggregator
In the first transaction, confirm the spending of funds by clicking Approve Spending and signing the transaction in your wallet.
In the second transaction, deposit the funds by clicking Deposit and signing the transaction in your wallet.
After the transaction is successfully confirmed on-chain, your wallet will display the amount of received xfrxETH LP tokens.
You can obtain scBTC using the official Rings issuer app. Alternatively, you can use third-party services listed below.
Obtaining scBTC using the Jumper.exchange aggregator
Each paired pool on the Sonic hub-chain consists of two tokens:
A universal token β an asset from Sonic, uniform across all pools of the same type (e.g., xfrxUSD for USD assets, xfrxETH for ETH, and scBTC for BTC).
A synthetic derivative, backed by the original asset locked in the Consensus Bridge. These can be either single assets or LP tokens from Curve.
Navigate to the Liquidity tab in the Yield section. Select the Balanced mode and click Next.
Enter the desired amount to swap, approve the spending by clicking Approve, and sign the transaction in your wallet.
Click Swap to execute the exchange and confirm the transaction in your wallet.
Note: Some directions may experience high slippage!
To provide liquidity to Sonic pools:
Select the pool where you want to transfer liquidity, e.g., xsArbitrum.
Determine the required token amounts.
For the Arbitrum example, you need 25% frxUSD and 25% scUSD to obtain 50% xfrxUSD and 50% sUSDC_arb (percentages are based on the total liquidity you plan to transfer to the xsArbitrum pool).
Deposit the universal token and the directional (synthetic) token into the paired pool.
In our example, deposit xfrxUSD and sUSDC_arb into the CrossCurve Stable ARB pool.
In the first transaction, approve the spending by clicking Approve Spending and sign the transaction in your wallet.
In the second transaction, deposit the funds by clicking Deposit and sign the transaction in your wallet.
After the transaction is confirmed on-chain, the amount of received xsArbitrum LP tokens will appear in your wallet.
Go to the Liquidity tab in the Yield section. Select the Easy mode and click Next.
Choose the available asset for the swap.
Enter the desired amount to swap, approve the spending by clicking Approve, and sign the transaction in your wallet.
Click Swap to execute the exchange and confirm the transaction in your wallet.
In the xsArbitrum pool tab, click Stake LP and get rewards.
Enter the deposit amount, approve the spending by clicking Approve, and sign the transaction in your wallet.
After successful confirmation, deposit the funds by clicking Stake and sign the transaction in your wallet.
The deposited amount will appear in the Staked field.
You can view the current vAPR and accrued rewards in the selected pool by clicking on the APY icon.
frxUSD tokens on the Fraxtal network can be swapped from any available asset in the app.
Then, bridge them to the Sonic network on .
In the app, you can transfer any available asset to the Ethereum network, receiving USDT, USDC, or DAI.
Then, scUSD tokens can be swapped in the app by depositing the available assets as collateral.
Choose your preferred app from the list of bridges in the section under Apps in the Bridge category.
Swaps are also available on the aggregator for any available assets.
To obtain the LP token xfrxUSD, you need to provide liquidity in the pool:.
Go to the pool page and connect your wallet.
Enter the desired deposit amount on the Deposit tab. To avoid losses due to slippage, itβs recommended to deposit funds in a balanced manner by clicking Add all coins in a balanced proportion (learn more ).
If your wallet doesnβt support automatic token addition, add it manually as a custom token with the contract address on the Sonic network.
wfrxETH tokens on the Fraxtal network can be swapped from any available asset in the app.
Then, bridge them to the Sonic network on .
In the app, you can transfer any available asset to the Ethereum network, receiving WETH or ETH.
Then, scETH tokens can be swapped in the app by depositing the available assets as collateral.
Choose your preferred app from the list of bridges in the section under Apps in the Bridge category.
Swaps are also available on the aggregator for any available assets.
To obtain the LP token xfrxETH, you need to provide liquidity in the pool:.
Go to the pool page and connect your wallet.
Enter the desired deposit amount on the Deposit tab. To avoid losses due to slippage, itβs recommended to deposit funds in a balanced manner by clicking Add all coins in a balanced proportion (learn more ).
If your wallet doesnβt support automatic token addition, add it manually as a custom token with the contract address on the Sonic network.
In the app, you can transfer any available asset to the Ethereum network, receiving WBTC.
Then, scBTC tokens can be swapped in the app by depositing WBTC on the Ethereum network as collateral.
Choose your preferred app from the list of bridges in the section under Apps in the Bridge category.
Swaps are also available on the aggregator for any available assets.
sUSDC_arb tokens on the Sonic network can be swapped from any available asset in the xsArbitrum pool via the app.
If you know the swap direction, you can also perform the exchange in the tab using any available asset.
Obtain the synthetic token for this direction, in this case, .
For USD pools, acquire tokens. For example, deposit an equal amount of and into the pool.
Navigate to the pool page: and connect your wallet.
Enter the desired deposit amount in the Deposit tab. To avoid losses due to slippage, itβs recommended to deposit using the balanced method by clicking Add all coins in a balanced proportion (more details ).
If your wallet doesnβt automatically add the token, manually add it as a custom token using the contract address on the Sonic network.
LP xsArbitrum tokens on the Sonic network can be swapped from any available asset in the xsArbitrum pool via the app.
To provide liquidity to CrossCurve pools navigate to the Farms page in the Yield section: and connect your wallet.