Using Hardhat
Hardhat is a development environment used for smart contract compiling, deploying, testing and debugging.
Get started with Hardhat for general installation and overview.
Config Hardhat for Gnosis
Update the config with Gnosis networks, check the highlighted lines for instructions:
- Typescript
- Javascript
hardhat.config.ts
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
//https://hardhat.org/hardhat-runner/docs/config#json-rpc-based-networks
//Note: keep your mnemonic and private keys securely
//Read more: https://hardhat.org/hardhat-runner/docs/config#hd-wallet-config
//1) You can configure private keys or mnemonic:
//let accounts = ["your private key here"]
let accounts = { mnemonic: "your mnemonic here", }
const config: HardhatUserConfig = {
solidity: "0.8.17",
//2) select the default network "gnosis" or "chiado"
defaultNetwork: "gnosis",
networks: {
hardhat: {
},
gnosis: {
url: "https://rpc.gnosischain.com",
accounts: accounts,
},
chiado: {
url: "https://rpc.chiadochain.net",
gasPrice: 1000000000,
accounts: accounts,
},
},
etherscan: {
customChains: [
{
network: "chiado",
chainId: 10200,
urls: {
//Blockscout
apiURL: "https://blockscout.com/gnosis/chiado/api",
browserURL: "https://blockscout.com/gnosis/chiado",
},
},
{
network: "gnosis",
chainId: 100,
urls: {
// 3) Select to what explorer verify the contracts
// Gnosisscan
apiURL: "https://api.gnosisscan.io/api",
browserURL: "https://gnosisscan.io/",
// Blockscout
//apiURL: "https://blockscout.com/xdai/mainnet/api",
//browserURL: "https://blockscout.com/xdai/mainnet",
},
},
],
apiKey: {
//4) Insert your Gnosisscan API key
//blockscout explorer verification does not require keys
chiado: "your key",
gnosis: "your key",
},
}
};
export default config;
hardhat.config.js
require("@nomicfoundation/hardhat-toolbox");
//https://hardhat.org/hardhat-runner/docs/config#json-rpc-based-networks
//Note: keep your mnemonic and private keys securely
//Read more: https://hardhat.org/hardhat-runner/docs/config#hd-wallet-config
//1) You can configure private keys or mnemonic:
//let accounts = ["your private key here"]
let accounts = { mnemonic: "your mnemonic here", }
/** @type import('hardhat/config').HardhatUserConfig */
module.exports = {
solidity: "0.8.17",
//2) select the default network "gnosis" or "chiado"
defaultNetwork: "gnosis",
networks: {
hardhat: {
},
gnosis: {
url: "https://rpc.gnosischain.com",
accounts: accounts,
},
chiado: {
url: "https://rpc.chiadochain.net",
gasPrice: 1000000000,
accounts: accounts,
},
},
etherscan: {
customChains: [
{
network: "chiado",
chainId: 10200,
urls: {
//Blockscout
apiURL: "https://blockscout.com/gnosis/chiado/api",
browserURL: "https://blockscout.com/gnosis/chiado",
},
},
{
network: "gnosis",
chainId: 100,
urls: {
// 3) Select to what explorer verify the contracts
// Gnosisscan
apiURL: "https://api.gnosisscan.io/api",
browserURL: "https://gnosisscan.io/",
// Blockscout
//apiURL: "https://blockscout.com/xdai/mainnet/api",
//browserURL: "https://blockscout.com/xdai/mainnet",
},
},
],
apiKey: {
//4) Insert your Gnosisscan API key
//blockscout explorer verification does not require keys
chiado: "your key",
gnosis: "your key",
},
}
};
Compile your contract
npx hardhat compile
Deploy your contract
- Typescript
- Javascript
Gnosis Mainnet
npx hardhat run scripts/deploy.ts --network gnosis
Chiado Testnet
npx hardhat run scripts/deploy.ts --network chiado
Gnosis Mainnet
npx hardhat run scripts/deploy.js --network gnosis
Chiado Testnet
npx hardhat run scripts/deploy.js --network chiado
View your deployed contract on any of the explorers.
Visit our Tools page for other support.
Verify Contract
- Chiado Testnet
- Gnosis Mainnet
npx hardhat verify --network chiado <deployed contract address>
npx hardhat verify --network gnosis <deployed contract address>
Visit our Contract Verification Page for more documentation on verification tools.
Additional Hardhat Documentation
- Additional Hardhat deployment documentation is located here.