🟩Swap & Bridge with Symbiosis
Walkthrough: How to swap & bridge tokens over Ethereum, zkSync Era, Arbitrum One, Arbitrum Nova, Polygon, BNB chain, Avalanche, etc. using Symbiosis WebApp.
Last updated
Walkthrough: How to swap & bridge tokens over Ethereum, zkSync Era, Arbitrum One, Arbitrum Nova, Polygon, BNB chain, Avalanche, etc. using Symbiosis WebApp.
Last updated
In this document, you will find information about settings, fees for on-chain and cross-chain operations, instructions on how to perform swaps using Symbiosis WebApp, and tips on how to check your swaps.
For instructions on how to swap from/to Tron, please refer to Swap & Bridge to and from Tron
For instructions on how to swap from/to the Bitcoin network, please refer to Swap & Bridge from and to Bitcoin Network
If you have sUSDC, sUSDC.e, sBUSD, sUSDT or sWETH and want to exchange them, please refer to Bridge with Symbiosis: sUSDC, sBUSD, sWETH
While it's intuitively easy to understand how to perform swaps with Symbiosis WebApp, please review the displayed details carefully before performing the swap. Let's review the details of a swap together:
The number of tokens displayed as 'to receive' already includes the liquidity provider fees and cross-chain fees for the operation. Please note that the actual amount of received tokens may differ slightly from this displayed number, but it will remain within the range set by the slippage tolerance value (always check the Minimum received amount). For instance, if 1000 tokens are displayed as 'to receive' and the slippage tolerance value is set at 3%, then the actual amount of received tokens could range between 970 and 1000 tokens.
Route is a sequence of intermediate swaps leading to the best price for the trade. In our example, it's ETH for WETH on Arbitrum One ->
Bridging with Symbiosis ->
WETH for ETH on Base.
Price is the value of one cryptocurrency for the purpose of conversion to another for this particular swap. Please note, the price depends on the swap size.
Slippage Tolerance is the maximum price change you're willing to accept for your trades to be completed. On-chain and cross-chain swaps will be treated in a special way if the price change exceeds the specified value. Minimum Received is an estimate of the minimum token amount to receive for this trade based on current rates and settings. Actual amount to be sent is the value of the entered token amount in the USD or WETH equivalent minus liquidity providers' fees (if any) on the source network. Cross-chain fee is the estimated transaction fee on the destination network in the stablecoin or WETH equivalent. The sum will be deducted from the transfer amount to cover expenses for processing the transaction on the destination network. Price impact is the difference between the market price and the estimated price due to the size of the trade. If you see that the price impact is high, you can try to reduce the token amount for a one-time cross-chain swap.
You can find settings for cross-chain operations by pressing the cogwheel icon:
You will find two values: slippage tolerance and trade deadline:
Slippage Tolerance is the maximum price change you're willing to accept for your trades to be completed. On-chain and cross-chain swaps will be treated in a special way if the price change exceeds the specified value. See More about Slippage Tolerance for more information.
The default value is 2%. This value can be changed. When exchanging stablecoins, it's okay to set a lower slippage tolerance value. Still, please be aware that low slippage tolerance value may result in higher transaction fees, delays in transaction execution, or even failure to execute the transaction.
Trade Deadline means a cross-chain operation will be automatically canceled if the processing time exceeds the specified duration.
The default value is 20 minutes for on-chain swaps and this value can be changed, and
24 hours for cross-chain swaps. This values cannot be changed.
To change the current settings:
Press the cogwheel icon.
Save the changes by pressing the Save Changes button
Done ∎
Requirements to operate:
You have enough native assets to pay transaction fees on the source network.
To perform a cross-chain swap or bridge:
Connect your wallet.
If you see the Approve <Token name> button, approve the token use by pressing the button and confirming the transaction in your wallet. In our example we do not need to approve ETH, since it's the native currency for the source blockchain.
Finally, you get a confirmation.
Please use Symbiosis Explorer to check your cross-chain operations.
Done ∎
There are two types of swaps that you can perform through Symbiosis WebApp:
On-chain swap: you exchange one token for another token. The exchanging tokens reside on one blockchain. For example, if you exchange ETH on Ethereum for USDC on Ethereum: this is an on-chain swap.
Cross-chain swap: you exchange one token for another token. The exchanging tokens reside on different blockchains. For example, if you exchange ETH on Ethereum for USDC on the BNB chain: this is a cross-chain swap.
(1) If you perform an on-chain transaction, just grab the transaction hash (it can be found in your wallet) and check it out in the block explorer of that blockchain where you performed your on-chain swap.
(2) If you are performing a cross-chain swap, we recommend that you use Symbiosis Explorer to check your operation. A cross-chain operation usually consists of three transactions, and knowing what happened in just one transaction is not enough to see the whole picture.
Symbiosis Explorer collects data related to cross-chain operations performed via the Symbiosis protocol across all supported networks, analyzes it, and displays the status of cross-chain operations.
If you notice that the status of your cross-chain swap is marked as Stuck, it typically indicates that the operation is taking longer than usual. Before taking any action, we strongly recommend waiting or reaching out to our support team. They can assist and potentially expedite the completion of the transaction. If you decide to revert the transaction, please see Stuck Transactions
Please note that Symbiosis Explorer does not collect information about on-chain swaps. For more information on how to use Symbiosis Explorer, please seeSymbiosis Explorer
In rare cases, a user can receive stablecoins or WETH tokens on the destination network even if another token was selected as the destination token.
Why does it happen?
When assets are exchanged between different blockchains, they aren't processed instantly. If the exchange rate on the destination network changes during the processing time and the new conditions don't meet the stated ones, either a stablecoin or WETH will be received, even if another token was selected.
Why stablecoins or WETH tokens?
Stablecoins and WETH tokens have the same face value across different networks, so these tokens are used as transit tokens to route cross-chain operations via the Symbiosis protocol.
Stuck Cross-chain operations vs. the Guaranteed Stablecoin or WETH
Another approach was used to handle such situations before. If the exchange rate on the destination network changed during the processing time and the new conditions didn't meet the stated ones, then such an operation was considered a stuck one, and the user should send another transaction to revert the stuck funds. In this approach, the user received stablecoins or WETH tokens on the original network. So the user received tokens on the same chain and spent tokens to pay transaction and cross-chain fees.
To improve user experience, the flow of dealing with cross-chain operations that cannot be accomplished due to rate changes on the destination network was changed to the current one: the user receives stablecoins or WETH tokens on the destination network.
Whenever you perform a cross-chain swap or on-chain swap, please review the exchange details before confirming the transaction in your wallet. You sign what you see in the Symbiosis WebApp interface. Once you sign a transaction, no details can be changed.
Token rates and transaction fees are constantly changing. Please review the details of each swap before signing a transaction.
What to consider when you do a swap:
Slippage tolerance. The number of tokens displayed as 'to receive' already includes the liquidity providers fees and cross-chain fees for the operation. Please note that the actual amount of received tokens may differ slightly from this displayed number, but it will remain within the range set by the slippage tolerance value. See More about Slippage Tolerance for more information. For instance, if 1000 tokens are displayed as 'to receive' and the slippage tolerance value is set at 3%, then the actual amount of received tokens could range between 970 and 1000 tokens.
The swap size. The swap size can greatly affect the number of tokens to be received (see the example below). Let's consider details of two cross-chain swaps of 10,000 and 50,000 USDC from Ethereum to Mantle:
As you can see the swap of 50,000 is too large for these tokens/chains and highly unprofitable.
You can tailor your own token list in Symbiosis WebApp. Such a token list can be useful in the following cases:
You cannot find a token you need in the provided token list,
Usually you swap just few types of tokens and don't want to search for these tokens in the general token list every time you perform a swap.
To create a token list:
Repeat Step 2 for all takens you want to add to your token list.
To remove a token from the list, click the bin icon next to the token.
Done ∎
If you still have questions, please contact our live support on Discord.
When you sign a transaction in your wallet the transaction contains all details you see in the interface. See More about Slippage Tolerance for more information on slippage tolerance. To change the current settings for slippage tolerance, press the cogwheel icon
Select or type a new value for slippage tolerance:
Navigate to Symbiosis WebApp > the Swap tab:
In the Transfer from field, select the network and the source token: the token that you have and that you would like to exchange (in our example, this's ETH on Arbitrum One):
Enter an amount (0.005 ETH in our example)
In the Transfer to field, select the network and the destination token (the token that you would like to get): In our example, we chose ETH on zkSync ERA as the destination token. Wait a bit to get swap details: If you get any messages or errors on this step and are not sure how to handle them, please see Common Issues and Solutions
Once Symbiosis WebApp has found the best rates for the selected token pair, please check the details carefully before executing the swap. Let's review the swap details of our example together:
— The number of tokens displayed as 'to receive' already includes the liquidity provider fees and cross-chain fees for the operation. Please note that the actual amount of received tokens may differ slightly from this displayed number, but it will remain within the range set by the slippage tolerance value (always check the Minimum received amount).
For instance, if 1000 tokens are displayed as 'to receive' and the slippage tolerance value is set at 3%, then the actual amount of received tokens could range between 970 and 1000 tokens.
To change settings for Slippage tolerance, press the cogwheel icon
— Route is a sequence of intermediate swaps leading to the best price for the trade. In our example, it's ETH for WETH on Arbitrum One ->
Bridging with Symbiosis ->
WETH for ETH on Base. If you are interested to see what happens under the hood, please refer to Cross-chain Swaps with Symbiosis
— Price is the value of one cryptocurrency for the purpose of conversion to another for this particular swap. Please note, the price depends on the swap size.
— Slippage Tolerance is the maximum price change you're willing to accept for your trades to be completed. On-chain and cross-chain swaps will be treated in a special way if the price change exceeds the specified value. See More about Slippage Tolerance for more information.
— Minimum Received is an estimate of the minimum token amount to receive for this trade based on current rates and settings.
— Actual amount to be sent is the value of the entered token amount in the USD or WETH equivalent minus liquidity providers' fees (if any) on the source network.
— Cross-chain fee is the estimated transaction fee on the destination network in the stablecoin or WETH equivalent. The sum will be deducted from the transfer amount to cover expenses for processing the transaction on the destination network.
— Price impact is the difference between the market price and the estimated price due to the size of the trade. If you see that the price impact is high, you can try to reduce the token amount for a one-time cross-chain swap.
!! Recipient's address !! By default, the recipient's address is the same as the sender's address. If you want to send to another address, slide the switcher Receive assets to another wallet (1), and enter a valid address on the destination blockchain (2): Please use self-custodial wallets only! Do not send funds to addresses provided by exchanges or third-party services.
If you see the Switch network to <Network name> button, switch to the network by pressing the button and confirming the action in your connected wallet:
Press the Swap button:
Check and confirm the transaction in your connected wallet (we use Metamask in this example):
Wait a bit the operation to be completed: Block confirmation: The number of blocks indicates how many blocks have been added to the blockchain after the block with your transaction. The safe block confirmation number differs from blockchain to blockchain. You can close the window and do other swaps in the meantime:
Cross-chain fees. If you swap tokens to a blockchain network with a high transaction fees in the USD equivalent (for example, Ethereum), please keep an eye on the cross-chain fees. Yes, they are already included to the number of tokens displayed as 'to receive' but it's better to check the fees every time before you consider to perform a cross-chain swap.
Expand the general token list in the Transfer from or Transfer to section and click on the cogwheel icon:
Enter the token address (1) and add the token to your custom token list (2):
Next time you go to your custom token list you will see all added tokens: