VeChain Hardhat Template
A complete development environment template for building smart contracts on VeChain using Hardhat. This template comes pre-configured with everything you need to start developing, testing, and deploying smart contracts on VeChain networks.
Features
- ✅ Hardhat configuration for VeChain networks (Solo, Testnet, Mainnet)
- 🐳 Thor-Solo instance for local development
- 📦 Upgradeable smart contracts templates
- 🧪 Comprehensive test suite setup
- 🔧 Deploy and upgrade scripts
- 🎭 Mock contracts for common VeChain contracts
Prerequisites
- Node.js v20 (version specified in
.nvmrc)
- Yarn or npm
- Docker (for running Thor-Solo)
Installation
yarn install
- Create your environment file:
cp .env.example .env
Usage
Local Development
- Start the Thor-Solo instance:
yarn start-solo
Compile
yarn compile
Deploy
yarn deploy:solo
or
yarn deploy:testnet
or
yarn deploy:mainnet
Verify (Optional)
Optionally verify your smart contracts on Sourcify. This allows 3rd to view and independently verify all of the following:
- Source code
- Metadata
- Contract ABI
- Contract Bytecode
- Contract transaction ID
After deploying SimpleStorage, the console will print the address of the deployed contract. You can verify the contract on sourcify.eth:
yarn hardhat verify --network vechain_testnet 0x98307db87474fc30d6e022e2b31f384b134c2c2a
Note: Hardhat throws an error when verifying contracts on VeChain networks. This error can be ignored as the contract is still verified on Sourcify. See an example here
Test
yarn test
or to generate a coverage report:
yarn test:coverage:solidity
Will generate the coverage report in the coverage folder, open the index.html file in your browser to see the report.
Generate Docs
yarn generate-docs
Will generate the docs in the docs folder.
Warning
This template is using the @openzeppelin/contracts-upgradeable v5.0.2 and @openzeppelin/contracts v5.0.2 in order to be compatible with the VeChain Solidity compiler version of 0.8.20.