Deploy Smart Contract

Fantom utilizes a major part of the Ethereum Virtual Machine (EVM) in the backend. Smart contracts are written in Solidity and they can function on Fantom as they do on Ethereum.
To deploy a smart contract, you send a Fantom transaction containing your bytecode without specifying any recipients. You will need FTM tokens to pay the gas fees when deploying smart contracts. To request your testnet FTMs on the testnet, you can use the testnet faucet.
After the contract is deployed, it will be available to all users of the Fantom network. Smart contracts have a Fantom address like other accounts.


  • Bytecode (compiled code) of your smart contract
  • FTM for gas costs
  • Deployment script/plugin
  • Access to a Fantom node, either by running your own node or API access to a node
For testnet tokens, you may use the testnet faucet.

Example of smart contract deployment

If you are deploying a smart contract on Fantom for the first time, you may take a look at the example given in the following link:
The repository contains the materials to deploy a smart contract using HardHat and Truffle tools. Instructions to work with the mainnet and testnet are included.

Deployment using Remix

If you want to deploy a smart contract using Remix to the Fantom testnet, you just need to connect MetaMask to Fantom Testnet and choose Injected Provider - MetaMask in the Environment option. You can see that the network ID is set to 4002, which is Fantom testnet's network ID. When you deploy the contract, it will be deployed to the Fantom testnet.

Additional resources


  • Hardhat: Development environment for editing, compiling, debugging and deploying your smart contracts using the EVM.
  • Truffle: Development environment, testing framework and asset pipeline for blockchains using the EVM.
  • Remix: IDE that’s used to write, compile, debug & deploy Solidity code in your browser.
  • Solidity: Solidity is an object-oriented, high-level language for implementing smart contracts.
  • OpenZeppelin: OpenZeppelin Contracts helps you minimize risk by using battle-tested libraries of smart contracts for Ethereum and other blockchains.
  • thirdweb: Complete Web3 development framework that provides everything you need to connect your applications and games to decentralized networks.