# Using the bridge with ERC20 tokens directly through the contract

**Please use this tutorial at your own risk as it involves using Etherscan UI/Fuse explorer to relay the tokens. This tutorial is applicable only for ERC20 tokens other than FUSE. Do not use this tutorial to transfer FUSE.**&#x20;

We are going to have a UI soon so it would be good to wait for the bridge UI too.

Below are the important contract addresses:&#x20;

Ethereum Mediator: **0xf301d525da003e874DF574BCdd309a6BF0535bb6**

Fusenet Mediator : **0xc2220646E1E76D5fF3a441eDd9E8EFF0e4A8EF03**

In the below example we will consider USDT (ERC20) and learn how to wrap USDT to Fusenet and relay it back to ERC20.

**Step 1:** **Approving the USDT token contract**

This step basically is to approve your wallet to interact with the USDT token contract so that you can spend your tokens on Bridge contract.

Please go to USDT token contract on Etherscan via link below.

{% embed url="<https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#writeContract>" %}

![](/files/SUODNYHvncic7lgwJP46)

Click on **“Connect to Web3”** and sign in to your wallet through Metamask.

**Step 2:** Go to **“approve”** and enter the details below to allow for the for the bridge mediator contract to move the funds

* spender (address) field: the mediator contract address on Ethereum (0xf301d525da003e874DF574BCdd309a6BF0535bb6)
* spender (uint256): the amount of tokens to transfer in wei (Number of decimals should be 6)

Click on **“Write”** and approve the transaction on your Metamask wallet and wait for the confirmation on-chain.

![](/files/BXFQWXurL2Lx6tJLpB5c)

**Step 3:**

Navigate to mediator contract using the link below

<https://etherscan.io/address/0xf301d525da003e874df574bcdd309a6bf0535bb6#code>

Click on **“Write as Proxy”** and then on **“Connect to Web3”.** Sign in through your Metamask wallet.

Enter the below details on **“Relay tokens”** and click on **“Write”**

* token (address) field: the USDT token contract address on Ethereum (0xdac17f958d2ee523a2206206994597c13d831ec7)
* \_value (uint256): the amount of tokens to transfer in wei (Number of decimals should be 6)

![](/files/1JP6MYFlw4xupYjvla4H)

Once the transaction is confirmed on-chain we wait for 2 blocks to ensure security of transaction and then the USDT tokens should appear on your Fuse address and have been swapped from Ethereum mainnet to Fusenet.

**Transferring from Fuse to Ethereum**

Now let’s learn how to transfer the wrapped ERC20 tokens on Fusenet back to Ethereum mainnet.

**Step 1:** Approving the wrapped USDT token contract on Fusenet.&#x20;

This step basically is to approve your wallet to interact with the USDT token contract on Fusenet so that you can transfer the tokens to the Mediator contract.

Please go to token contract on Fusenet explorer via link below.

{% embed url="<https://explorer.fuse.io/address/0xFaDbBF8Ce7D5b7041bE672561bbA99f79c532e10/write_proxy>" %}

![](/files/sz7fvhc2fsLTeTjqfWX9)

Make sure that the network is FUSE network. If you have not added Fuse network please follow the instructions [here](https://docs.fuse.io/the-fuse-studio/getting-started/how-to-add-fuse-to-your-metamask).

Click on **“Connect to Metamask”** and sign in to your wallet through Metamask.

&#x20;**Step 2:** Go to **“approve”** and enter the details below

* spender (address) field: the mediator contract address on Fusenet (0xc2220646E1E76D5fF3a441eDd9E8EFF0e4A8EF03)
* spender (uint256): the amount of tokens to transfer in wei (Number of decimals should be 18)

Click on **“Write”** and approve the transaction on your Metamask wallet and wait for the confirmation on-chain.

![](/files/vpTVGmoPWbeSJDwxVnCw)

**Step 3:**

Navigate to Migrator contract on Fusenet using the link below

<https://explorer.fuse.io/address/0xc2220646E1E76D5fF3a441eDd9E8EFF0e4A8EF03/write_proxy>

Click on **“Write as Proxy”** and then on **“Connect to Metamask”** (If you have connected Metamask previously no need to connect again). Sign in through your Metamask wallet.

Enter the below details on **“Relay tokens”** and click on **“Write”**

* token (address) field: the USDT token contract address on Fusenet (0xFaDbBF8Ce7D5b7041bE672561bbA99f79c532e10)
* \_value (uint256): the amount of tokens to transfer in wei (Number of decimals should be 6)

![](/files/1lGtx9LC2n6bmURJORHo)

After the transaction is confirmed on Fuse network, the bridge oracle will relay your tx on Ethereum. No need to wait for additional confirmations as Fuse is PoS network. After sometime you should be able to see the successful transfer of the token on your ERC20 address.

Note: Please do enter the decimals very carefully. If the decimals are entered incorrectly then the transaction might fail with an error or might cost you very high gas.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tutorials.fuse.io/tutorials/using-the-bridge-with-erc20-tokens-directly-through-the-contract.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
