Example contract
Let’s start with a simple ERC20 token an example contract:Code Explanation
Imports: The contract imports theERC20 and Ownable contracts from OpenZeppelin.
Constructor: The constructor initializes the token with a name (“ExampleToken”) and symbol (“ETK”), and mints the initial supply to the contract deployer.
Mint Function: The mint function allows the owner (i.e. the account that deployed the contract) to mint additional tokens.
Deploy using Hardhat
Set up the environment
Ensure you have the latest nodeJS and npm:Install dependencies & Hardhat plugins
Update Hardhat Config
Openhardhat.config.js and configure the IoTeX network:
TESTNET_PRIVATE_KEY with the private key of the account you want to use for deployment.
Create the Contract File
Create a newcontracts directory and new file contracts/ExampleToken.sol and add the ERC20 token contract code provided above (make sure you delete any example contracts already created in the contracts folder).
Write an ignition module for Deployment
Inside theignition folder add a file ExampleToken.js with the following content:
Deploy the Contract
Deploy using Foundry
This quick start guide will help you deploy smart contracts on the IoTeX blockchain using the Foundry suite. Foundry is a fast, portable, and modular toolkit for Ethereum application development written in Rust.Setup the Environment
If you haven’t installed Foundry, use the following command:Set Up Your Project
Create a new project directory and navigate into it:Write Your Smart Contract
Navigate to thesrc directory and create a new Solidity file ExampleToken.sol and add the ERC20 token contract code provided above.
Compile Your Smart Contract
Compile the smart contract using Foundry:Configure a Deployment Script
Foundry usescast to interact with the blockchain. Create a .env file to store your private key securely:
Deploy Your Smart Contract
Use thecast send command to deploy your contract to the IoTeX testnet. Replace MyContract with the name of your compiled contract and adjust the RPC URL if needed.
Verify the Deployment
Once deployed, you will receive a transaction hash. Use this hash to verify the deployment on the IoTeX testnet explorer.Example Contract Interaction
After deployment, you can interact with your contract. For example, to call thesetMessage function:

