Deploy a Smart Contract on Avalanche using Remix and MetaMask

Rado Minchev
Avalanche
Published in
3 min readMay 12, 2020

The Avalanche network is a subnet that has three chains: P-Chain, X-Chain, and C-Chain.

The C-Chain is an instance of the Ethereum Virtual Machine powered by Avalanche’s Snowman consensus engine.

The C-Chain RPC can do anything a typical Ethereum client can by using the Ethereum-standard RPC calls. The immediate benefits of using the C-Chain rather than Ethereum are quick blocktimes which finalize in under 3 seconds, high transactional throughput, and lightweight clients that do not require Proof of Work. These properties that could considerably improve the performance of DApps and the user experience.

Today we will deploy and test a smart contract on Avalanche using Remix and MetaMask.

Step 1. Setting up MetaMask

Log in to MetaMask -> Click the Network drop-down -> Select Custom RPC

FUJI Testnet Settings

Network Name: Avalanche FUJI C-Chain
New RPC URL: https://api.avax-test.network/ext/bc/C/rpc
ChainID: 0xa869
Symbol: AVAX
Explorer: https://cchain.explorer.avax-test.network/

Avalanche Mainnet Settings

Network Name: Avalanche Mainnet C-Chain
New RPC URL: https://api.avax.network/ext/bc/C/rpc
ChainID: 0xa86a
Symbol: AVAX
Explorer: https://cchain.explorer.avax.network/

Local Testnet (AVASH)

Network Name: Avalanche Local
New RPC URL: http://localhost:9650/ext/bc/C/rpc
ChainID: 0xa868
Symbol: AVAX
Explorer: N/A

Step 2a. Funding your C-Chain address on FUJI

Navigate to https://faucet.avax-test.network/ and paste your C-AVAX address.

Step 2b. Funding your C-Chain address on Mainnet

Funding your C-chain address on mainnet is done through a cross-chain swap from X-chain to C-chain. Tutorial

Step 3c. Funding your C-chain address on local testnet

Deploy your own faucet. Tutorial

Step 3. Remix: Connect MetaMask and Deploy a smart contract.

Open Remix -> Select Solidity
Load or create the smart contracts that we want to compile and deploy using Remix file explorer.

For this example, we will deploy an ERC20 contract from OpenZeppelin

Navigate to Deploy Tab -> Open the “ENVIRONMENT” drop-down and select Injected Web3 (make sure MetaMask is loaded)
Once we injected the web3-> Go back to the compiler and compile the selected contract -> Navigate to Deploy Tab
Now the smart contract is compiled, MetaMask is injected, and we are ready to deploy our ERC20. Click “Deploy”
Confirm the transaction on the MetaMask popup
Our contract is successfully deployed!
Now we can expand it by selecting it from the “Deployed Contracts” tab and test it out.
The contract ABI and Bytecode are available on the compiler tab

If you had any difficulties following this tutorial or simply want to discuss Avalanche tech with us you can join our community at Discord!

About Avalanche:

Avalanche is an open-source platform for launching decentralized finance applications and enterprise blockchain deployments in one interoperable, highly scalable ecosystem. Developers who build on Avalanche can easily create powerful, reliable, and secure applications and custom blockchain networks with complex rulesets or build on existing private or public subnets.

Website | Whitepapers | Twitter | Discord | GitHub | Documentation | Explorer | Avalanche-X | Telegram | Facebook | LinkedIn | Reddit | YouTube

--

--