> For the complete documentation index, see [llms.txt](https://docs.blockxnet.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.blockxnet.com/introduction/deploying-smart-contracts/remix.md).

# Remix

Remix IDE allows developers to deploy their smart contracts using MetaMask, which is universally convenient. This platform doesn't require a setup, and comes with a series of plugins that offer simple GUIs.  &#x20;

Remix is supported by *Firefox, Chrome, Brave, and other Chromium-based browsers*. The platform is also available as a [Desktop IDE](https://github.com/ethereum/remix-desktop/releases) and a [VScode extension](https://github.com/ethereum/remix-vscode#ethereum-remix-project-extension-for-visual-studio-code). &#x20;

This guide assumes that the reader has at least some familiarity with the Solidity programming language for smart contracts, and general dApp development on the Ethereum network.&#x20;

The following steps will guide you to effective smart contract deployment on Remix.

**1.** Go to <https://remix.ethereum.org/>. Make sure that you have the **Atlantis Network** added to your Metamask and a few BCX tokens are in your wallet to be used as Gas for creating a smart contract.&#x20;

If you need some BCX tokens for the testnet, go to <https://faucet.blockxnet.com>, then enter your Metamask address.

<figure><img src="/files/dhuyZZW3jz39BMfZ2TA8" alt=""><figcaption><p>remix.ethereum.org</p></figcaption></figure>

Below is the default interface of Remix:

<figure><img src="/files/ItuUITjtp4ZJXCP5n2Vk" alt=""><figcaption></figcaption></figure>

Let’s try to create a new file. We’ll create a new token within the Atlantis Network using just a few lines of Solidity code commonly available across the internet:

```solidity
pragma solidity ^0.8.2;
 
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
 
contract MyToken is ERC20, ERC20Burnable, Ownable {
   
    constructor() ERC20("My Token", "Myt") {
        _mint(msg.sender, 1000000 * 10 ** 18);
    }
 
    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}
```

**2.** Create a new file:

<figure><img src="/files/lXRj8otWxH4do8SIPa3Y" alt=""><figcaption></figcaption></figure>

Then enter a filename. For this example, we've named it **MyToken.sol.**

<figure><img src="/files/yd0x3xXtY82O7FBZJy2Q" alt=""><figcaption></figcaption></figure>

**3.** Paste the Solidity code shown below to the newly created file. Then **Save.**

```solidity
pragma solidity ^0.8.2;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract MyToken is ERC20, ERC20Burnable, Ownable {
    
    constructor() ERC20("MyToken", "Myt") {
        _mint(msg.sender, 1000000 * 10 ** 18);
    }
    
    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}
```

<figure><img src="/files/6diq1m1MUHA4WzgaXekE" alt=""><figcaption></figcaption></figure>

**4.** Upon saving, you will see more files being added to your workspace. They are our new dependencies since we imported the OpenZeppelin libraries.

<figure><img src="/files/ja20PWgutN4uy7pfzZme" alt=""><figcaption></figcaption></figure>

**5.** Look for the **Compile** icon on the left navigation panel of Remix - the 3rd icon. Then click on the Compile button.

<figure><img src="/files/lvhdq7VUaHrFXHx332bi" alt=""><figcaption></figcaption></figure>

**6.** Once you have successfully compiled the file, Remix will show you the Compile icon with a checkmark added to it. There’ll be no checkmark if an error had occurred during compilation and you’ll see error message(s) as well.&#x20;

You will now be able to copy the **ABI** of the contract which is commonly used in Web3 when it comes to tampering with the contract.

<figure><img src="/files/yEgBAqJcQ3dfBa7LoUD5" alt=""><figcaption></figcaption></figure>

**7.** To Deploy, click the **Deploy** button on the left which is the 4th icon in Remix. For the Environment, select **Injected Provider** - Metamask to use your Metamask wallet in deploying the contract. Make sure that the Atlantis Network is selected and the chosen wallet has BCX in it for gas fee coverage.&#x20;

One of the ways to verify if you’ve got the right wallet is checking if the address is correct, as well as the balance right beside it (displayed in **ether**).

<figure><img src="/files/f7PlYRSRLX3Py8mMBv3r" alt=""><figcaption></figcaption></figure>

**8.** Once you click **Deploy**, it will open up a MetaMask window where you’ll see the gas fee needed for deploying the contract. Click **Confirm** for the contract to be deployed.

<figure><img src="/files/sPXDKof2PwOOgNpOyVDK" alt=""><figcaption></figcaption></figure>

**9.** To find out the outcome of the deployment, check the lower section of Remix, which should show you something like this:

<figure><img src="/files/c7cgTxphTpRFcJFfudXQ" alt=""><figcaption></figcaption></figure>

On the **left side**, there is the **Deployed Contracts** section, which, if you click on the arrow on the left side of the MyToken contract, should open more options for interacting with the contract.&#x20;

The **Copy** icon allows you to copy the contract address of the deployed contract to add it to your Metamask since it is a token.&#x20;

On the **right side**, you’ll see more info if you click on the right arrow. It should show you transaction info.&#x20;

<figure><img src="/files/GjntXiGVRQe0IDqAr6GK" alt=""><figcaption></figcaption></figure>

**10.** Once you have copied the Contract Address, you can then add it to your Metamask. Once the Metamask window opens, you’ll notice that there is a small amount of BCX tokens deducted from your balance. Click on the **Assets** tab, then click **Import tokens**.

<figure><img src="/files/SLZlGXHeBHxQ6RUODhxd" alt=""><figcaption></figcaption></figure>

**11.** Paste the **contract address** that you copied from Remix. If the contract address that you copied is correct, MetaMask will automatically show your token symbol.&#x20;

Click **Add Custom Token.** It will show you a confirmation page before being able to add the token. It will also show you your token balance.

<figure><img src="/files/4GaAbCc0E9Jhn6sa7knQ" alt=""><figcaption></figcaption></figure>

**12.** A confirmation page will appear before you can add the token. Click **Import Tokens.**

<figure><img src="/files/jxUR3eUTda0Y80bXFmTk" alt=""><figcaption></figcaption></figure>

**13.** You should then be able to see your token on MetaMask where you can send tokens to other Atlantis Network users, just like you send tokens on **Ethereum** or **Binance Smart Chain**.

**14.** If you want to see further info on your contract, you can go to [**https://explorer.blockxnet.com**](https://explorer.blockxnet.com) and enter either the contract address or the transaction hash. Both are available in the Remix lower section after you deploy the contract.

<figure><img src="/files/7SG5RnpgCQOJXoWR7plA" alt=""><figcaption></figcaption></figure>

Click on the token name that you deployed to see more info about the token.

<figure><img src="/files/FYVx8MOwtojYTwwXd62F" alt=""><figcaption></figcaption></figure>

**15.** If you clicked on the token name of your token, it should have taken you to the token page where you can see the **Token Holders**, **Total Supply**, **Number of Holders** and **Number of Transfers.**

<figure><img src="/files/33lMjrGOm5AEHn7uq6ex" alt=""><figcaption></figcaption></figure>

**Congratulations**, you have successfully deployed a smart contract on the Atlantis Testnet using Remix, and are now able to see transaction details on a block explorer!
