Hardhat tutorials

Tutorials on how to use Hardhat to develop dApps on Acala EVM+.

Hardhat Acala EVM+ development tutorials

If you are searching for Truffle or Waffle tutorial, please follow the links.


To be able to run the tutorial steps that require an operational development network (like deploying and testing), please refer to the guide on how to setup a local development network.
WARNING: All of the tests included within tutorials is meant to be run in the local development network and cold potentially fail on the public network.

Current tutorials

  1. 1.
    hello-world: This tutorial contains instructions on how to setup a simple Hardhat project that is compatible, deployable and testable with Acala EVM+.
  2. 2.
    echo: This tutorial builds upon the previous one and adds return values to the function calls, events and changes of storage variables.
  3. 3.
    token: This tutorial builds upon the previous ones and adds the ERC20 token using OpenZeppelin dependency.
  4. 4.
    NFT: This tutorial demonstrates how to build a NFT contract in Acala EVM+.
This section of tutorial uses Acala EVM+ specific mechanics and is incompatible with the legacy EVM. It introduces the use of our precompiled smart contracts that are accessible to anyone using the Acala EVM+
  1. 1.
    precompiled-token: This tutorial utilizes the precompiled and predeployed ERC20 tokens present in the Acala EVM+. It uses the ADDRESS utility, which serves as an automatic getter of the precompiled smart contract addresses, so we don't have to search for them in the documentation and hardcode them into our project.
  2. 2.
    DEX: This tutorial utilizes the predeployed DEX smart contract to swap the ERC20 tokens of the predeployed Token smart contracts, which we instantiate with the help of the ADDRESS utility.
  3. 3.
    EVM: This tutorial utilizes the predeployed EVM smart contract to manage the account preferences and the smart contract that the account maintains. It introduces the publishing of the smart contracts in the Acala EVM+ as well as enabling and disabling the developer mode of the account directly in the Acala EVM+.
  4. 4.
    advanced-escrow: This tutorial utilizes the predeployed ERC20 tokens, DEX and Schedule of Acala EVM+ as well as the Address utility in order to build an advanced Escrow service.
  5. 5.
    upgradeable-greeter: This tutorial explores on how to use the proxy-upgrade pattern in order to deploy, manage and upgrade upgradeable smart contracts in Acala EVM+.