Deploy de Smart Contract na Infura (Sepolia) com Hardhat e Solidity

Testar seu contrato em uma rede Hardhat local está ótimo durante o desenvolvimento. Quando estiver pronto para a testnet real, você precisa de contas reais, ETH real (testnet) e um provedor de nó como Infura para transmitir suas transações.

TL;DR: Faça deploy de um smart contract Solidity na testnet Sepolia usando Hardhat e Infura.
Stack: Hardhat, Solidity, Infura, Sepolia, dotenv
Nível: Intermediário
Tempo de leitura: ~8 min

Obter a URL do projeto Infura

Crie uma conta em infura.io, crie um novo projeto e copie a URL do endpoint Sepolia. Parece algo como https://sepolia.infura.io/v3/SEU_PROJECT_ID.

Configurar .env

INFURA_URL=https://sepolia.infura.io/v3/SEU_PROJECT_ID
SECRET=suas doze palavras de mnemônico aqui

Configurar 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" }
        },
        sepolia: {
            url: process.env.INFURA_URL,
            chainId: 11155111,
            accounts: { mnemonic: process.env.SECRET }
        }
    }
};

export default config;

Fazer deploy na Sepolia

# Adicione ao package.json scripts:
# "deploy:sepolia": "npx hardhat ignition deploy ignition/modules/SeuContrato.ts --network sepolia"
npm run deploy:sepolia

O que você construiu

Um smart contract deployado na testnet Sepolia via Infura. O endereço do contrato agora está acessível publicamente na rede Sepolia e você pode interagir com ele de qualquer frontend web3.

Próximos passos

  • Verifique o contrato no Etherscan Sepolia para que outros possam ler o código-fonte.
  • Nunca comite seu mnemônico ou chave privada. Adicione .env ao .gitignore antes do primeiro commit.
  • Após testar na Sepolia, o deploy na mainnet usa o mesmo processo com uma config de rede mainnet e ETH real.

Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.

Deixe um comentário