Fazer deploy em testnet é barato (e gratuito). Fazer deploy na mainnet da BNB Chain custa BNB de verdade. Antes de ir ao ar, certifique-se de que o seu config do Hardhat está apontando para a rede correta e que a sua carteira tem saldo.
TL;DR: Faça deploy de um smart contract na mainnet da BNB Chain usando Hardhat, depois verifique-o no BscScan.
Stack: Hardhat, Solidity, BNB Chain, BscScan, dotenv
Nível: Intermediário
Tempo de leitura: ~6 min
Configurar .env
BSC_URL=https://bsc-dataseed.binance.org/
MNEMONIC=suas doze palavras de mnemônico aqui
npm i dotenv
Adicionar rede BNB ao hardhat.config.ts
import dotenv from "dotenv";
dotenv.config();
import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";
const config: HardhatUserConfig = {
solidity: "0.8.24",
defaultNetwork: "local",
networks: {
local: {
url: "http://127.0.0.1:8545",
chainId: 31337,
accounts: { mnemonic: "test test test test test test test test test test test junk" }
},
bnb: {
url: process.env.BSC_URL,
accounts: { mnemonic: process.env.MNEMONIC }
}
},
};
export default config;
Fazer deploy na BNB Chain
# Adicione ao package.json scripts:
# "deploy:bnb": "npx hardhat ignition deploy ignition/modules/SimpleBank.ts --network bnb"
npm run deploy:bnb
Verificar no BscScan
Acesse o bscscan.com para encontrar seu contrato, depois verifique o código-fonte para que os usuários possam ler e interagir com ele diretamente pela interface do BscScan. Pegue uma API key no bscscan.com, adicione ao seu .env e rode:
npx hardhat verify --network bnb 0xEnderecoDoSeuContrato
O que você construiu
Um smart contract deployado na mainnet da BNB Chain e verificado no BscScan. O código-fonte está publicamente visível e os usuários podem interagir com ele diretamente pela interface do BscScan.
Próximos passos
- Nunca comite sua chave privada ou mnemônico no controle de versão. Adicione .env ao .gitignore antes do primeiro commit.
- Estime os custos de gas antes do deploy testando na testnet da BSC primeiro.
- Após a verificação, construa um frontend que se conecta ao endereço do contrato deployado usando ethers.js ou web3.js.
Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.