Deploy a Smart Contract

Fantom utilizes 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.
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're to deploy smart contract on Fantom for the first time, you may take a look 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 mainnet and testnet are included.

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.