Transfer Terra assets to EVM chains using Satellite
As we begin to bring greater cross-chain interoperability to the blockchain space, one of our early initiatives is the simple transfer of assets across chains. We recently announced the launch of Satellite, a webapp that enables users to easily transfer assets across chains through an intuitive web-based UI. This writeup is a step-by-step walkthrough of how you can use Satellite to make such transfers.
The list of supported assets and blockchains is expected to grow, but we currently support 5 EVM chains — Avalanche, Ethereum, Fantom, Moonbeam, and Polygon to and from the following chains: Cosmoshub, e-Money, Osmosis, and Terra.
Whether you are going from a Cosmos-based chain to EVM or vice versa, the flow remains the same:
Prerequisites to make asset transfers using Satellite
- Chrome desktop browser with the Keplr and MetaMask wallet extensions (quick note on this below). We also support Terra Station for transfers to/from that chain.
- Funds to cover transaction fees generated in transferring assets from your source chain.
- For transferring assets from an EVM chain: A MetaMask wallet connected to the desired EVM chain with native tokens in that chain to cover transaction fees.
- For transferring assets from a Cosmos-based chain: Enough native tokens in that chain to cover transaction fees.
If there are issues at any point, use the support button on the bottom right corner of the Satellite app for assistance.
Quick note on the Keplr Wallet integration
Our first set of supported chains/assets includes transferring funds on a Cosmos-based chain to/from EVM chains. One of the steps in our app for transactions that originate from the Cosmos universe will involve an IBC transfer from a funded Keplr wallet to a one-time Axelar deposit address.
The universe for IBC transfers is ever-growing, and we have found that market-wide options to do that are fairly limited at the moment. So we built this function into the app, with help from our friends at Keplr.
You can easily connect to all of our supported wallets from the top-right of the webapp:
Let’s begin a Terra >> EVM flow!
First, visit the Satellite app
Prefer to watch a video tutorial?
Make your source/destination chain selections
Use the Top Flows icon in the top right to prefill the entry fields with Source Chain, Asset, and Destination Chain information.
Or manually select the source chain and asset to transfer, in this example Terra and UST. Then select the destination EVM chain from the dropdown — let’s go with Avalanche.
You will notice at this point a small table will appear that shows info on:
- Fees that the networks will assess on this transaction.
- How long we expect the entire flow to take.
Next, enter the destination address to receive the transferred tokens on the destination chain. Optionally, you can autofill the destination address as your connected EVM address on MetaMask.
Note on Transaction Fees and Minimum Deposit Amounts:
- There is a fee on all transactions made through the network. The amount of the fee is dependent on the selected source chain, destination chain, and asset. In our example, the fee for the UST transfer in our Terra to Avalanche above will be 1.5 UST. The webapp will only let you initiate a transaction if the transfer amount is greater than this fee.
- Additionally, you will need to ensure there are funds on the source chain (in the form of native tokens) to pay for transaction fees to that chain. In the example above, you will actually need enough native LUNA to cover transaction fees assessed by Terra. (Pro Tip: If the transferred tokens need to be brought back to the source chain at a later time, you will also need funds on the destination chain to pay for transaction fees on the way back).
- Double check that the destination address is correct, or the funds will be lost.
Make your deposit!
After initiating the asset transfer, the Axelar Network will generate a one-time deposit address, where the tokens to be transferred will be deposited.
In our example above, the generated address will be an Axelar Network (not Terra) address. At this stage, you will need to send your deposit through an IBC transfer from your Terra address.
Good news! This can be done directly within the Satellite application, which facilitates the IBC transfer through your connected Keplr OR Terra Station wallets.
So if you already have either wallet with a funded Terra account, you’re good to go. Otherwise, download the extension and either create a new account and send LUNA and UST funds to your new account, or import a Terra account you already have into the wallet.
To do the IBC transfer, select your wallet option in Step 2:
Then enter the amount of your deposit, ensuring the number you enter meets the Minimum Transfer Amount requirement and is not more than the balance in the account:
Sit back and relax
Axelar Network will then confirm the deposit and transfer the funds to the destination address provided on Avalanche.
In steps 2 and 3, Satellite provides helpful links to external block explorers for your deposit tx on the source chain (on step 2) and your token balance on the destination chain (on step 3). For transfers to EVM chains, Satellite also provides a link in step 3 to add the token to your MetaMask wallet extension.
Once this is complete, the transferred tokens can be viewed on MetaMask… and that’s it!
Note: The UST that is sent to Avalanche will appear in the form of wrapped UST tokens on the Avalanche chain. See the Appendix for how to find the right token contract for UST on Avalanche and how to import it into your MetaMask account so you can see the transferred tokens.
Let’s go the other way: EVM >> Terra
The Satellite app also allows for transfer flows in the reverse direction! The steps are largely repetitive of the above, but there are a few differences to highlight when bringing these wrapped tokens back to Terra.
Entering your destination address
Similar to the Terra >> EVM flow, you can optionally elect to autopopulate a destination address from a connected wallet for the EVM >> Terra flow. In this case, you will autopopulate your Terra address from your connected Keplr OR Terra Station wallet.
Making your EVM deposit
In the Terra >> EVM flow, you will recall in the 3-step transaction status page that Step 2 required you to make a deposit. It is no different here for the EVM >> Terra case, except the deposit address generated is in fact an Avalanche deposit address.
The deposit can be made from your MetaMask or you can make that deposit directly from Satellite through our MetaMask integration. However, if you are making the deposit from outside of Satellite, make sure you are depositing Axelar wrapped UST tokens, as depositing assets that are not Axelar wrapped could result in the loss of those funds.
An info popup with a link to all our token contract addresses appears every time a transaction is initiated from an EVM chain:
If you do not have the Avalanche network set up on your MetaMask extension, we facilitate that for you. After selecting the “MetaMask” option on step 2, you will see the prompt to add Avalanche to your wallet, if it doesn’t already exist.
The rest of the process is similar to the previous flow. The final funds that arrive back on Terra in this case will not be wrapped UST (as they were when they existed on Avalanche), but in fact native UST on the Terra network.
Any any time, you can query Axelarscan for historical transactions made through Satellite. A link is also provided through the Support button:
If you run into issues or want to discuss any feedback, you have a few options
- We have a thriving community of users and moderators on Discord. Feel free to join and engage in the conversation in #satellite-cross-chain-chat.
- On rare occasions, our automated microservices do not detect your deposit and a manual deposit confirmation has to be made. The Deposit Recovery Tool is a quick self-help way for you to push that along without the need to reach out for support.
- If you require technical support, you can file a Zendesk ticket.
Appendix: Adding token contracts on EVM chains
First, add the EVM chain to MetaMask, if it does not already exist. In MetaMask, click the networks dropdown, then Add network.
Enter the network information, which can be found online in MetaMask’s add a network fields. For example, for Avalanche mainnet:
Save the network. With the EVM chain connected, add the Axelar wrapped UST tokens on the EVM chain to MetaMask. Go to the Assets tab and click Import Tokens.
To add the token, first find the contract address using the Axelar Mainnet Address Page. Find the address of the relevant token, in this case, Avalanche UST token address. Copy this address into the Metamask Token Contract Address field. The remaining fields should be filled in automatically, and the token can be added.
The balance should display the newly transferred tokens.