{"id":20309009,"url":"https://github.com/protokol/solidity-typescript-hardhat-template","last_synced_at":"2025-05-09T00:06:23.674Z","repository":{"id":40671209,"uuid":"392296144","full_name":"protokol/solidity-typescript-hardhat-template","owner":"protokol","description":"A Template Project To Start Solidity Development With Hardhat and Typescript support. Created by Protokol","archived":false,"fork":false,"pushed_at":"2025-04-30T09:30:34.000Z","size":1205,"stargazers_count":48,"open_issues_count":5,"forks_count":21,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-09T00:06:15.597Z","etag":null,"topics":["blockchain","ethereum-contract","hardhat","solidity","typescript"],"latest_commit_sha":null,"homepage":"https://www.protokol.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/protokol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-03T11:37:53.000Z","updated_at":"2025-04-09T20:38:53.000Z","dependencies_parsed_at":"2023-01-31T09:45:53.828Z","dependency_job_id":"dd03d88b-470c-46fb-b74b-41f054875d9e","html_url":"https://github.com/protokol/solidity-typescript-hardhat-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protokol%2Fsolidity-typescript-hardhat-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protokol%2Fsolidity-typescript-hardhat-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protokol%2Fsolidity-typescript-hardhat-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/protokol%2Fsolidity-typescript-hardhat-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/protokol","download_url":"https://codeload.github.com/protokol/solidity-typescript-hardhat-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253166518,"owners_count":21864476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","ethereum-contract","hardhat","solidity","typescript"],"created_at":"2024-11-14T17:25:03.347Z","updated_at":"2025-05-09T00:06:23.630Z","avatar_url":"https://github.com/protokol.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Img](header.png)\n\n# TypeScript Solidity Boilerplate Starter Kit\n\nA BoilerPlate Template Project To Start Solidity Development With Hardhat and Typescript.\nAll you have to do is create a new repository from the template and start coding your smart contracts.\n\n## Hardhat Configuration\n\n-   [Typechain](https://github.com/dethcrypto/TypeChain) plugin enabled (typescript type bindings for smart contracts)\n-   [hardhat-deploy](https://github.com/wighawag/hardhat-deploy) plugin enabled\n-   Testing environment configured and operational, with test coverage\n-   Prettier and eslint configured for project files and solidity smart contract\n-   [Solhint](https://github.com/protofire/solhint) configured for enforcing best practices\n-   Github actions workflows prepared for CI/CD\n-   Prepared Smart Contract Examples, Tests, Deployments and Tasks for Common ERC Standards (ERC20, ERC721, ERC1155)\n\nCheck the Hardhat documentation for more information.\n\nhttps://hardhat.org/getting-started/\n\n## Project Structure\n\n```text\n.\n├── contracts\n│   ├── BasicERC1155.sol\n│   ├── BasicERC20.sol\n│   └── BasicERC721.sol\n├── deploy\n│   ├── Deploy_BasicERC1155.ts\n│   ├── Deploy_BasicERC20.ts\n│   └── Deploy_BasicERC721.ts\n├── deployments\n├── hardhat.config.ts\n├── tasks\n│   ├── erc1155\n│   ├── erc20\n│   ├── erc721\n│   └── utils\n└── test\n    ├── BasicERC1155.ts\n    ├── BasicERC20.ts\n    └── BasicERC721.ts\n```\n\n## Supported Networks\n\n-   Hardhat Network (localhost)\n-   Ethereum Mainnet\n-   Ethereum Sepolia Testnet\n-   Polygon Mainnet\n-   Polygon Mumbai Testnet\n\nFeel free to add more networks in `hardhat.config.ts` file.\n\n## Hardhat Shorthand\n\nWe recommend installing `hh autocomplete` so you can use `hh` shorthand globally.\n\n```shell\nnpm i -g hardhat-shorthand\n```\n\nhttps://hardhat.org/guides/shorthand.html\n\n### Common Shorthand Commands\n\n-   `hh compile` - to compile smart contract and generate typechain ts bindings\n-   `hh test` - to run tests\n-   `hh deploy` - to deploy to local network (see options for more)\n-   `hh node` - to run a localhost node\n-   `hh help` - to see all available commands\n-   `hh TABTAB` - to use autocomplete\n\n## Usage\n\n### Setup\n\n#### 1. Install Dependencies\n\n```shell\nnpm install\n```\n\n#### 2. Compile Contracts\n\n```shell\nnpm run compile\n```\n\n#### 3. Environment Setup\n\nCreate `.env` file and add your environment variables. You can use `.env.example` as a template.\n\nIf you are going to use public network, make sure you include the right RPC provider for that network.\n\nMake sure you include either `MNEMONIC` or `PRIVATE_KEY` in your `.env` file.\n\n### Example Flow - Deploy ERC721 Token\n\n\u003e This is an example flow to deploy an ERC721 token to a public network and interact with it.\n\n#### 1. Deploy BasicERC721 Contract\n\n```shell\nhh deploy --network sepolia --tags BasicERC721\n```\n\n#### 2. Verify Contract\n\n```shell\nhh --network sepolia etherscan-verify\n```\n\n#### 3. Interact With Contract - Mint\n\n```shell\nhh erc721-mint \\\n --contract 0x77337983A7D1699FaF51a5f43b9907fB7B614097 \\\n --recipient 0x73faDd7E476a9Bc2dA6D1512A528366A3E50c3cF \\\n --network sepolia\n```\n\n---\n\n### Testing\n\n#### Run Tests\n\n```shell\nnpm run test\n```\n\n#### Run Coverage\n\n```shell\nnpm run coverage\n```\n\n---\n\n### Project Hygiene\n\n#### Prettier - Non Solidity Files\n\n```shell\nnpm run format:check\nnpm run format:write\n```\n\n#### Lint - Non Solidity Files\n\n```shell\nnpm run lint:check\nnpm run lint:fix\n```\n\n#### Prettier - Solidity\n\n```shell\nnpm run sol:format:check\nnpm run sol:format:write\n```\n\n#### Solhint - Enforcing styles and security best practices\n\n```shell\nnpm run solhint\n```\n\n\u003cbr\u003e\n\n## Contact Protokol\n\n**Need additional help with your solidity project?**\n\nProtokol builds custom blockchain and web3 solutions for organisations of all sizes. We build everything from smart contracts, to dApps, to fully bespoke web3 solutions.\n\nReach out at [protokol.com/contact](https://www.protokol.com/contact/) to learn how our web3 development services could help bring your project to life.\n\n\u003cbr\u003e\n\n## Join Protokol\n\n**Looking for an exciting new role in web3?**\n\nHead over to [protokol.com/careers](https://www.protokol.com/careers/) to discover the roles we have available or to submit your résumé.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotokol%2Fsolidity-typescript-hardhat-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprotokol%2Fsolidity-typescript-hardhat-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprotokol%2Fsolidity-typescript-hardhat-template/lists"}