A BoilerPlate Template Project To Start Solidity Development With Hardhat and Typescript. All you have to do is create a new repository from the template and start coding your smart contracts.
- Typechain plugin enabled (typescript type bindings for smart contracts)
- hardhat-deploy plugin enabled
- Testing environment configured and operational, with test coverage
- Prettier and eslint configured for project files and solidity smart contract
- Solhint configured for enforcing best practices
- Github actions workflows prepared for CI/CD
- Prepared Smart Contract Examples, Tests, Deployments and Tasks for Common ERC Standards (ERC20, ERC721, ERC1155)
Check the Hardhat documentation for more information.
https://hardhat.org/getting-started/
.
├── contracts
│ ├── BasicERC1155.sol
│ ├── BasicERC20.sol
│ └── BasicERC721.sol
├── deploy
│ ├── Deploy_BasicERC1155.ts
│ ├── Deploy_BasicERC20.ts
│ └── Deploy_BasicERC721.ts
├── deployments
├── hardhat.config.ts
├── tasks
│ ├── erc1155
│ ├── erc20
│ ├── erc721
│ └── utils
└── test
├── BasicERC1155.ts
├── BasicERC20.ts
└── BasicERC721.ts
- Hardhat Network (localhost)
- Ethereum Mainnet
- Ethereum Sepolia Testnet
- Polygon Mainnet
- Polygon Mumbai Testnet
Feel free to add more networks in hardhat.config.ts
file.
We recommend installing hh autocomplete
so you can use hh
shorthand globally.
npm i -g hardhat-shorthand
https://hardhat.org/guides/shorthand.html
hh compile
- to compile smart contract and generate typechain ts bindingshh test
- to run testshh deploy
- to deploy to local network (see options for more)hh node
- to run a localhost nodehh help
- to see all available commandshh TABTAB
- to use autocomplete
npm install
npm run compile
Create .env
file and add your environment variables. You can use .env.example
as a template.
If you are going to use public network, make sure you include the right RPC provider for that network.
Make sure you include either MNEMONIC
or PRIVATE_KEY
in your .env
file.
This is an example flow to deploy an ERC721 token to a public network and interact with it.
hh deploy --network sepolia --tags BasicERC721
hh --network sepolia etherscan-verify
hh erc721-mint \
--contract 0x77337983A7D1699FaF51a5f43b9907fB7B614097 \
--recipient 0x73faDd7E476a9Bc2dA6D1512A528366A3E50c3cF \
--network sepolia
npm run test
npm run coverage
npm run format:check
npm run format:write
npm run lint:check
npm run lint:fix
npm run sol:format:check
npm run sol:format:write
npm run solhint
Need additional help with your solidity project?
Protokol builds custom blockchain and web3 solutions for organisations of all sizes. We build everything from smart contracts, to dApps, to fully bespoke web3 solutions.
Reach out at protokol.com/contact to learn how our web3 development services could help bring your project to life.
Looking for an exciting new role in web3?
Head over to protokol.com/careers to discover the roles we have available or to submit your résumé.