contractsis where you will add and edit your smart contracts.
deployis where your main deploy script lives. When you create a new smart contract this is where you will reference it in order to deploy it the network specified in
scriptsis where you might keep your helper scripts, such as
publish.jswhich publishes a specified subgraph to The Graph. Or you might have a script to mint a series of NFTs.
testis where you will keep your test suite for your smart contracts.
hardhat.config.jsis where you will specify the network to deploy your smart contracts to on
yarn deploy, provide Infura keys for each network, specify your desired solidity compiler versions, etc.