Skip to main content

This is an updated version of the article that was originally published on May 3, 2022 and updated on March 9th, 2023. This new update includes changes to the Moonbeam dApp.

Cross chain assets are native Substrate assets that can be transferred between a parachain and the relay chain, or other parachains that are connected to the same relay chain.

To differentiate cross chain assets, Moonbeam has introduced the concept of XC-20s. XC-20s are cross chain assets that have an ERC-20 token interface. Consequently, users can interact with XC-20s as they would with other fungible tokens, for example, add them to MetaMask and create liquidity pools in DEXs. All XC-20s will have xc prepended to their name. For example, Polkadot’s DOT representation on Moonbeam is known as xcDOT.

For more information you can check out the Moonbeam documentation pages on XCM and XC-20s.

This guide will show you how to use the Moonbeam dApp to transfer xcDOTs between Moonbeam and the Polkadot relay chain. This guide can be adapted for other XC-20s as they are onboarded to the network.

Get Started with the Dashboard

To get started with the dashboard, navigate to apps.moonbeam.network/moonbeam.

Press Connect Wallet in the upper right corner. Click on your desired network if it isn’t already selected. Then click on the EVM Wallet you’d like to use with the Moonbeam dApp. For the purposes of this guide, MetaMask will be used.

Your preferred EVM wallet will pop up and ask you to sign in. Once signed in, you will be prompted to select the account to connect to the dApp and accept permissions.

xcm-1 (1)

You will also need to connect MetaMask to Moonbeam. The dApp will help you switch to the right network, but if you need help, please check out our documentation on connecting MetaMask to Moonbeam.

xcKSM 2

Upon accepting permissions and changing the network to Moonbeam, you will be redirected to the main dashboard where you’ll find details about your accounts balance, last transactions, cross chain assets (XC-20s), and staking data.

Add XC-20s to your EVM Wallet

Throughout this guide you’ll be interacting with the xcDOT token, but you can follow the same steps for any other XC-20 that is supported. Make sure you are connected to the EVM account where you want to receive xcDOT tokens. If so, the first step will be to add the token to your EVM Wallet:

  1. Look for the asset labeled xcDOT. It may not be located on the first page
  2. Click on the kebab dropdown next to the DOT asset
  3. Press Add to Wallet

Your EVM wallet will prompt you with a pop-up that you’ll need to confirm. 

Add xcDOT to MetaMask

To verify that the token was added successfully, you can open up MetaMask and switch to the Assets tab. From there you should see xcDOT in the list of assets.

xcKSM 4

Deposit XC-20s

To transfer assets from their origin network to Moonbeam, you can use the Parachain Bridges feature on the Moonbeam dApp. 

Prior to transferring assets such as DOT from the Polkadot Relay Chain, you’ll need to connect the account that holds your DOT to the Moonbeam dApp. To do so, take the following steps: 

  1. Click the caret in the upper right corner
  2. Click Substrate wallet
  3. Click on the wallet that holds your DOT tokens
  4. Select the account that holds your DOT tokens from the dropdown

Connect your Substrate wallet to the Moonbeam dApp

Transaction fees will be paid on the destination chain and deducted from the total amount transferred. In this case the fees are paid on Moonbeam in xcDOT.

Navigate to the Parachain Bridges page under Cross-Chain if you haven’t already, and take the following steps: 

  1. Select the token you’d like to transfer. In this case, we’ve selected DOT
  2. Select the origin network, in this case it is Polkadot
  3. Select the origin account that holds your DOT. The dApp indicates the sending account’s current balance of DOT
  4. Select the destination chain. In this case, we’ve selected Moonbeam
  5. Select the recipient account. For your convenience, the dApp will indicate the receiving account’s current balance of xcDOT
  6. Enter the amount to send. There are minimum and maximum buttons to the right which will autofill the relevant amounts accounting for all fees
  7. Review the estimated receive amount and corresponding fees. You do not need to enter anything here
  8. If everything looks good, press Send

Deposit DOT to Moonbeam

The wallet that holds your DOT will pop-up and ask you to confirm the transaction. Enter your password and click Sign the transaction. The transaction will be sent and your xcDOT balance will be displayed in the dApp. Keep in mind that the transaction fees will be deducted from your xcDOT balance.

Sign cross chain transaction with your Substrate wallet

The Moonbeam dApp will let you know the status of the transaction and will display relevant metrics such as time to finality and overall cost. If you haven’t already added xcDOT to your EVM wallet, you can do so now by clicking on the + icon next to MetaMask.

View your cross chain transactions and add xcDOT to your MetaMask

Congratulations! You have successfully sent DOT to Moonbeam and can now interact with the xcDOT tokens like you typically would with ERC-20 tokens on Moonbeam.

Send XC-20s within Moonbeam

Since you have already added the xcDOT token to your EVM wallet, you can start interacting with it as you would with any ERC-20 token. For example, to send xcDOT using MetaMask to another Moonbeam account, you can follow these steps:

  1. Open MetaMask and from the Assets tab click on the xcDOT asset
  2. Click on Send
  3. Choose an account to send the xcDOT to
  4. Enter the amount of xcDOT to send
  5. Review the transaction details and click Confirm to send the transaction

xcKSM 8

You should see that your xcDOT balance displayed on the dApp has decreased and the transaction is listed under the Activity tab in MetaMask. The recipient will need to add the xcDOT token to their MetaMask and then they can feel free to send xcDOT around the Moonbeam network, or withdraw it and convert it back to DOT on Polkadot.

Withdraw XC-20s

To transfer assets out of Moonbeam and back to their origin network, you can use the Parachain Bridges feature on the Moonbeam dApp. To withdraw xcDOT tokens from Moonbeam back to Polkadot, make sure that your EVM account that holds the xcDOT is connected. Transaction fees will be paid on the destination chain and deducted from the total amount transferred. In this case the fees are paid on Polkadot in DOT.

Navigate to the Parachain Bridges page under Cross-Chain if you haven’t already, and take the following steps: 

    1. Select the token you’d like to transfer. In this case, we’ve selected DOT
    2. Select the origin network, in this case it is Moonbeam
    3. Select the Moonriver account that holds your xcDOT. The dApp indicates the sending account’s current balance of xcDOT
    4. Select the destination chain. In this case, we’ve selected Polkadot
    5. Select the recipient account. For your convenience, the dApp will indicate the receiving account’s current balance of DOT
    6. Enter the amount to send. There are minimum and maximum buttons to the right which will autofill the relevant amounts accounting for all fees
    7. Review the estimated receive amount and corresponding fees. You do not need to enter anything here
    8. If everything looks good, press Send
    9. Confirm the transaction in your EVM wallet

Withdraw xcDOT to send back to Polkadot

The Moonbeam dApp will let you know the status of the transaction and will display relevant metrics such as time to finality and overall cost. Your balance displayed on the dApp for xcDOT will decrease. You can also check that the DOT balance for the destination address has increased by using Polkadot.js apps or a block explorer such as Subscan.

View your cross chain transactions

And that’s it! Congratulations! You have successfully sent DOT to Moonbeam in exchange for xcDOT, and xcDOT back to Polkadot in exchange for DOT.

 

Moonbeam Team

Author Moonbeam Team

More posts by Moonbeam Team