O que é Hardhat?
Hardhat é um ambiente de desenvolvimento de código aberto usado para escrever, compilar, testar, depurar, implantar e verificar contratos inteligentes da Ethereum.Ele oferece aos desenvolvedores de criptomoedas um espaço de trabalho estruturado para criar aplicações executadas na Ethereum Virtual Machine, geralmente chamada de EVM.Hardhat não é uma blockchain, criptomoeda, carteira, token ou linguagem de programação de contratos inteligentes.É uma ferramenta para desenvolvedores que coordena compiladores, executores de testes, redes blockchain simuladas, sistemas de implantação, bibliotecas, scripts e plugins.A documentação oficial do Hardhat o descreve como um ambiente flexível e extensível para escrever, testar, depurar e implantar software da Ethereum.
Os desenvolvedores podem usar Hardhat para testar o comportamento de contratos localmente antes de enviar transações a uma blockchain pública, onde os erros podem se tornar permanentes e custosos.Hardhat é mantido pela Nomic Foundation para a comunidade de desenvolvimento da Ethereum.Versão atual do Hardhat
Hardhat 3 é a versão principal atual do ambiente de desenvolvimento.Em 13 de julho de 2026, a versão marcada mais recente é Hardhat 3.9.1, lançada em 2 de julho de 2026.
A linha de versões atual inclui um sistema de plugins reformulado, testes nativos em Solidity, cobertura de código integrada, simulação multichain, artefatos tipados, perfis de build e um novo gerenciador de rede.Desenvolvedores que mantêm projetos mais antigos devem confirmar se os plugins e arquivos de configuração são compatíveis com Hardhat 3 antes de atualizar.Um projeto deve fixar as dependências de desenvolvimento, em vez de aceitar automaticamente todas as futuras versões principais.Por que Hardhat é usado no desenvolvimento cripto
Contratos inteligentes podem controlar tokens, tesouros de protocolos, posições de empréstimo, sistemas de staking, governança descentralizada e outros criptoativos valiosos.Um erro de programação pode congelar fundos, permitir transferências não autorizadas, calcular saldos incorretamente ou criar uma condição econômica explorável.Hardhat ajuda os desenvolvedores a encontrar problemas antes que os contratos sejam implantados em uma blockchain ativa.Ele pode compilar código-fonte Solidity, executar testes automatizados, simular transações, exibir rastros de execução, estimar o uso de gas e implantar contratos por meio de procedimentos repetíveis.Também ajuda equipes de desenvolvimento a padronizar a estrutura dos projetos e automatizar tarefas com scripts e sistemas de integração contínua.Hardhat melhora o processo de desenvolvimento, mas não garante que um contrato inteligente seja seguro.Revisão independente, modelagem de ameaças, testes, monitoramento e controle de acesso cuidadoso continuam sendo necessários para aplicações cripto em produção.Arquitetura do Hardhat 3
Hardhat 3 separa grande parte de suas funcionalidades entre um runtime central e plugins opcionais.O ambiente central carrega a configuração do projeto, gerencia tarefas, cria conexões com blockchains e disponibiliza serviços de desenvolvimento para scripts e testes.Os plugins podem adicionar bibliotecas de contratos, ferramentas de asserção, funções de implantação, serviços de verificação, executores de testes, suporte a assinaturas por hardware e outros recursos.Esse design modular permite que cada projeto instale apenas as ferramentas de que realmente precisa.Isso também significa que dois projetos Hardhat podem se comportar de maneiras diferentes quando usam combinações distintas de plugins.Os desenvolvedores devem documentar todos os plugins necessários e fixar versões compatíveis na configuração do pacote do projeto.Hardhat Runtime Environment
O Hardhat Runtime Environment é o objeto central por meio do qual scripts, tarefas e plugins acessam os recursos do Hardhat.Ele costuma ser abreviado como HRE.O HRE pode fornecer dados de configuração, conexões de rede, artefatos, extensões de plugins e funções relacionadas a tarefas.Hardhat 3 pode criar programaticamente mais de um ambiente de runtime independente.Isso é útil para scripts avançados, sistemas de teste e aplicações que precisam de configurações isoladas ou conexões simultâneas com redes.A documentação do Hardhat Runtime Environment explica como o runtime conecta a configuração do projeto aos plugins e fluxos de desenvolvimento.
Estrutura de um projeto Hardhat
Um projeto Hardhat típico é um pacote npm que contém um arquivo de configuração do projeto e vários diretórios de desenvolvimento.O arquivo de configuração principal normalmente se chama
Em geral, o diretório
O diretório
O diretório
O diretório
O projeto também inclui um arquivo
Instalação do Hardhat
Normalmente, Hardhat é instalado como uma dependência de desenvolvimento dentro de um projeto JavaScript ou TypeScript.A configuração oficial atual exige Node.js versão 22.13.0 ou posterior.Um novo projeto pode ser inicializado com o comando
A política oficial de suporte ao Node.js explica quais linhas de versões do Node.js são compatíveis com Hardhat 3.
Configuração do Hardhat
O arquivo de configuração do Hardhat define como o projeto deve compilar, testar, conectar-se e implantar.Ele pode especificar versões do compilador Solidity, configurações do otimizador, plugins, redes, fontes de contas, perfis de build e opções de tarefas.Os arquivos de configuração do Hardhat 3 usam ECMAScript Modules por padrão.Scripts e testes ainda podem usar outros formatos de módulo quando seus ambientes oferecem suporte.A configuração deve ser revisada com cuidado, pois diferentes configurações de compilador ou otimizador podem produzir bytecode de implantação diferente.Um contrato deve ser verificado com a mesma versão do compilador e as mesmas configurações usadas para produzir o código implantado.Variáveis de configuração e segredos
Projetos de desenvolvimento cripto costumam exigir chaves privadas, endereços de chamada de procedimento remoto e outros valores sensíveis.Hardhat 3 oferece variáveis de configuração carregadas sob demanda, que só são carregadas quando uma tarefa realmente precisa delas.Esses valores podem ser armazenados fora do repositório de código-fonte para reduzir o risco de publicação acidental.O guia de variáveis de configuração do Hardhat explica como os valores podem ser validados, formatados e fornecidos por sistemas de armazenamento externos.
Hardhat também oferece um plugin oficial de keystore que pode armazenar determinados valores em formato criptografado.A criptografia não torna seguro um computador fraco nem uma senha roubada.As chaves de implantação em produção devem usar controles de acesso robustos, saldos limitados, assinatura por hardware, autorização multisig ou outro processo de gerenciamento de chaves cuidadosamente revisado.Compilação de contratos Solidity
Hardhat compila o código-fonte Solidity em bytecode que pode ser executado na EVM.A compilação também gera uma interface binária de aplicação, geralmente chamada de ABI.A ABI descreve as funções, os eventos, os erros e os tipos de parâmetros que podem ser chamados no contrato.Carteiras, scripts, aplicações front-end e outros contratos usam as informações da ABI para codificar e decodificar interações.Hardhat pode oferecer suporte a várias versões do compilador Solidity em um mesmo projeto quando diferentes arquivos-fonte precisam delas.Os desenvolvedores devem evitar variações desnecessárias de compilador, pois elas aumentam a complexidade de revisão e verificação.O compilador deve ser configurado explicitamente, em vez de depender de um padrão presumido.Artefatos de build do Hardhat
Após a compilação, Hardhat cria artefatos com informações sobre cada contrato.Um artefato pode incluir o nome do contrato, a ABI, o bytecode de criação, o bytecode implantado, referências de vinculação e informações do código-fonte.Por padrão, Hardhat 3 também cria declarações TypeScript para artefatos tipados.Artefatos tipados podem ajudar as ferramentas de desenvolvimento a detectar nomes de função, tipos de argumento e interações com contratos incorretos antes do runtime.A especificação de artefatos do Hardhat documenta a estrutura dos artefatos de contrato e das informações de build.
Os artefatos devem ser gerados a partir de código-fonte confiável e configurações reproduzíveis do compilador.Artefatos antigos devem ser removidos quando as configurações do compilador, os nomes dos contratos ou as dependências mudarem significativamente.Perfis de build
Hardhat 3 oferece suporte a perfis de build que definem configurações diferentes do compilador para fluxos de trabalho distintos.Um perfil de desenvolvimento pode priorizar compilação rápida e informações detalhadas de depuração.Um perfil de produção pode habilitar exatamente as configurações do otimizador previstas para a implantação.Um perfil de cobertura pode modificar o bytecode para medir os caminhos de código executados.Os perfis de build reduzem a necessidade de reescrever repetidamente uma única configuração.No entanto, as equipes devem identificar claramente qual perfil produziu cada implantação.Implantar um contrato com um perfil não pretendido pode produzir bytecode, comportamento de gas ou resultados de verificação diferentes.Redes blockchain simuladas
Hardhat inclui redes simuladas que são executadas localmente para desenvolvimento e testes.Uma rede simulada permite que os desenvolvedores implantem contratos e enviem transações sem gastar criptomoedas reais.Ela pode criar contas de teste financiadas, minerar blocos imediatamente, modificar timestamps, alterar saldos, personificar contas e redefinir o estado.Esses recursos possibilitam testar condições incomuns que seriam difíceis ou caras de reproduzir em uma blockchain pública.Hardhat 3 usa um runtime simulado com tecnologia EDR, escrito em Rust.O ambiente simulado foi projetado para testes rápidos, erros detalhados, rastros de execução e estado controlado da blockchain.Uma simulação local é útil, mas não consegue reproduzir perfeitamente todas as condições de uma rede real.Simulação multichain
Hardhat 3 foi projetado para oferecer suporte ao desenvolvimento em diferentes tipos de chains compatíveis com EVM.Um projeto pode configurar várias redes simuladas com comportamentos diferentes.A documentação oficial identifica suporte de simulação nativo para Ethereum Mainnet e OP Mainnet, além de um tipo genérico de chain disponível para outros ambientes compatíveis.A documentação multichain do Hardhat explica como os tipos de chain permitem que redes simuladas reproduzam com mais precisão comportamentos específicos de cada rede.
Os desenvolvedores devem testar os contratos de acordo com as regras reais de execução de cada rede em que serão implantados.Um contrato que funciona corretamente em uma configuração de rede pode se comportar de maneira diferente quando mudam as regras de gas, os contratos pré-implantados ou os formatos de transação.Gerenciador de redes do Hardhat
O Gerenciador de redes do Hardhat controla as conexões com redes blockchain simuladas e externas.Hardhat 3 permite que tarefas e scripts criem mais de uma conexão de rede ao mesmo tempo.Isso é útil para aplicações entre redes, testes de bridges, coordenação de implantações e aplicações que leem dados de uma chain enquanto escrevem em outra.Os nomes de rede na configuração são rótulos de conexão, e não provas de que a conexão alcança a blockchain esperada.Antes de assinar transações, os desenvolvedores devem verificar o chain ID, o bloco mais recente, os saldos das contas e o destino da implantação.O guia de gerenciamento de redes explica como Hardhat se conecta a redes simuladas e endpoints JSON-RPC remotos.
Fork de uma rede blockchain
O fork de rede permite que uma simulação local do Hardhat copie o estado da blockchain de um bloco selecionado de uma rede pública.O ambiente local pode então interagir com contratos existentes, saldos, contas e armazenamento sem alterar a rede real.Testes em fork são úteis para testar integrações de protocolos, cenários de liquidação, mudanças de governança, comportamento de tokens e atualizações de contratos.Quando resultados reproduzíveis forem importantes, o fork deve ser fixado em um número de bloco específico.Testar com o bloco mais recente sem especificá-lo pode produzir resultados diferentes à medida que o estado público muda.O provedor de dados remoto também pode limitar solicitações, registrar atividades do projeto ou retornar informações incompletas temporariamente.Testes em fork nunca devem ser confundidos com autorização para controlar contas ou ativos reais.Como testar contratos inteligentes com Hardhat
Os testes automatizados são uma das funções mais importantes do Hardhat.Hardhat 3 oferece suporte a testes escritos diretamente em Solidity e a testes de integração escritos em TypeScript.As duas abordagens de teste podem ser usadas juntas no mesmo projeto.Testes em Solidity são úteis para verificar o comportamento focado no contrato, pois são executados no ambiente da EVM.Testes em TypeScript são úteis para fluxos de aplicação, várias contas, lógica off-chain, dados externos e comportamentos mais amplos de integração.A visão geral oficial de testes do Hardhat explica os pontos fortes das duas abordagens.
Uma boa suíte de testes deve abranger operações bem-sucedidas, falhas esperadas, restrições de acesso, entradas extremas, transições de estado e ordenações incomuns de transações.Testes em Solidity
Hardhat reconhece arquivos de teste em Solidity por meio de convenções compatíveis de diretório e nome de arquivo.Funções de teste públicas podem implantar contratos, chamar funções, inspecionar o estado e falhar quando uma condição esperada não é atendida.Os testes em Solidity podem usar cheatcodes para modificar o ambiente de teste.Cheatcodes podem alterar o chamador, avançar o tempo, modificar saldos, esperar por eventos, esperar por reversões ou inspecionar o armazenamento.Esses controles facilitam o teste de condições que, de outra forma, exigiriam longas esperas ou configurações complicadas.Cheatcodes afetam o ambiente simulado de testes e não são funções disponíveis para usuários comuns em uma blockchain pública.Testes fuzz
Testes fuzz executam repetidamente uma função de contrato com valores de entrada gerados.Eles podem revelar casos extremos que os desenvolvedores não incluíram em exemplos escritos manualmente.Um cálculo de token pode funcionar para valores comuns, mas falhar com zero, um inteiro máximo, um limite de arredondamento ou uma combinação inesperada de estados.Os testes fuzz devem definir premissas realistas para que os valores gerados continuem significativos.Uma campanha fuzz bem-sucedida não prova que o contrato é seguro, pois explora apenas as entradas e propriedades configuradas.Invariantes importantes devem ser especificados para que o sistema de testes saiba qual comportamento deve sempre ser mantido.Testes de invariantes
Uma invariante é uma propriedade que deve permanecer verdadeira em muitas sequências possíveis de ações.Um protocolo de empréstimo pode exigir que o total de dívidas registrado corresponda à soma das dívidas dos usuários.Um token pode exigir que a oferta total seja igual a todos os saldos registrados de acordo com seu modelo contábil.Um sistema de mercado automatizado pode exigir que determinadas relações entre reservas permaneçam válidas.Testes de invariantes podem gerar sequências de transações e verificar se a propriedade continua válida.Eles são especialmente valiosos para protocolos cripto com estado, nos quais vulnerabilidades podem surgir apenas depois de várias operações em determinada ordem.Testes em TypeScript
Testes em TypeScript interagem com contratos por meio de bibliotecas de desenvolvimento e conexões blockchain.A configuração recomendada do Hardhat 3 usa o executor de testes do Node.js com viem.Plugins oficiais também oferecem suporte a uma configuração baseada em ethers com Mocha.Testes em TypeScript podem coordenar vários contratos, contas, arquivos, APIs e conexões de rede.Também podem testar os mesmos fluxos de trabalho usados pelo software off-chain de uma aplicação descentralizada.Os testes devem evitar depender desnecessariamente de serviços externos em produção, pois a indisponibilidade desses serviços pode tornar os resultados pouco confiáveis.Cobertura de código
A cobertura de código mede quais instruções, ramificações, funções e caminhos dos contratos foram executados durante os testes.Hardhat 3 inclui cobertura de código Solidity integrada.A cobertura pode ser solicitada com a opção de teste
O guia de cobertura de código do Hardhat explica que a ferramenta instrumenta os contratos com marcadores durante as execuções de cobertura.
O bytecode instrumentado é diferente do bytecode normal de produção e pode usar mais gas.Uma cobertura alta não prova que os testes contêm asserções úteis nem que o contrato é seguro.Um teste pode executar todas as linhas sem verificar o resultado econômico mais importante.Estatísticas de gas e snapshots de gas
Hardhat pode medir o gas consumido por funções públicas de contratos durante a execução dos testes.A opção
Depuração com Hardhat
Hardhat pode exibir erros de Solidity, logs decodificados, rastros de pilha e rastros de execução.Um rastro de execução mostra a sequência de chamadas e operações envolvidas em uma transação.O guia de rastros de execução do Hardhat explica como as configurações de detalhamento controlam a quantidade de informações de depuração exibidas.
Rastros detalhados podem revelar qual chamada foi revertida, qual função foi executada e como se desenvolveram as interações aninhadas entre contratos.O rastreamento é particularmente útil para protocolos com proxies, callbacks, hooks, transferências de tokens e vários contratos conectados.As informações de depuração podem conter endereços, parâmetros ou outras informações sensíveis de desenvolvimento e devem ser tratadas com cuidado em logs compartilhados.Logs de console em Solidity
Hardhat oferece suporte a logs de console voltados ao desenvolvimento em código Solidity em ambientes simulados.Os desenvolvedores podem imprimir valores durante a execução de um teste ou de uma transação local.Isso pode facilitar a inspeção do estado, dos chamadores, dos saldos e dos cálculos intermediários.Logs de desenvolvimento não devem permanecer no código de produção sem uma justificativa clara.Ferramentas de logging podem afetar o bytecode, o tamanho do contrato e o comportamento da implantação.Antes do lançamento, declarações temporárias de depuração devem ser substituídas por testes automatizados e asserções.Tarefas do Hardhat
Uma tarefa do Hardhat é um comando nomeado que automatiza parte de um fluxo de desenvolvimento.Uma tarefa pode compilar contratos, inspecionar contas, criar relatórios, gerenciar implantações ou executar uma operação específica do projeto.Plugins podem registrar tarefas que ficam disponíveis pela interface de linha de comando.As tarefas personalizadas devem validar a identidade da rede e os dados inseridos pelo usuário antes de enviar transações.Uma tarefa perigosa não deve usar silenciosamente a primeira conta disponível nem usar como padrão uma rede de produção.Nomes de comando claros e verificações de confirmação reduzem o risco de implantação ou transferência de fundos acidental.Scripts do Hardhat
Os scripts do Hardhat são programas TypeScript ou JavaScript que usam o ambiente de runtime e os plugins instalados.Um script pode implantar contratos, chamar funções, ler o estado, transferir funções administrativas ou gerar registros de implantação.Os scripts são flexíveis, mas atribuem mais responsabilidade ao desenvolvedor do que um sistema de implantação estruturado.Um script que falha pode deixar várias transações concluídas enquanto as transações posteriores permanecem incompletas.Os scripts devem ser projetados para detectar o estado existente e evitar a repetição de operações perigosas.Scripts de produção devem registrar hashes de transação, endereços implantados, parâmetros, IDs de rede e resultados.Hardhat Ignition
Hardhat Ignition é o sistema declarativo oficial de implantação disponibilizado para projetos Hardhat.Os desenvolvedores descrevem, por meio de módulos de implantação, as instâncias de contratos e as operações desejadas.Ignition analisa essas definições e determina como a implantação deve ser executada.Ele pode enviar transações independentes em paralelo, recuperar-se de determinados erros e retomar implantações interrompidas.O guia de implantação do Hardhat Ignition explica como contratos e chamadas posteriores à implantação são agrupados em módulos.
A implantação declarativa reduz alguns riscos de scripts manuais, mas a lógica dos módulos e seus parâmetros ainda precisam ser revisados cuidadosamente.Um sistema automatizado pode repetir um erro de forma consistente quando a definição de implantação está incorreta.Implantação de contratos inteligentes
A implantação envia transações de criação de contrato a uma rede blockchain.A transação contém o bytecode de criação compilado e os parâmetros do construtor.Após a confirmação, o contrato recebe um endereço determinado pelas regras de criação da blockchain.A implantação deve usar o compilador, o otimizador, os argumentos do construtor, a conta, a chain e as configurações de gas pretendidos.Antes de enviar uma transação real, as equipes devem fazer uma implantação simulada final usando exatamente os artefatos de produção.Imediatamente após a implantação, também devem verificar as funções administrativas, a propriedade, as permissões de atualização, os endereços do tesouro e os controles de emergência.Chaves privadas nunca devem ser incluídas diretamente em um arquivo de configuração do Hardhat ou em um repositório de código-fonte.Verificação de contratos inteligentes
A verificação de contratos inteligentes relaciona o bytecode implantado ao código-fonte alegado e às configurações do compilador.O código-fonte verificado permite que usuários, auditores, carteiras e ferramentas de monitoramento inspecionem o comportamento pretendido do contrato.Hardhat oferece um plugin oficial de verificação.O guia de verificação do Hardhat explica que a verificação comprova que o bytecode implantado foi produzido a partir do código-fonte especificado.
A verificação não prova que o código-fonte é seguro, justo ou livre de riscos econômicos ocultos.Os parâmetros do construtor, as bibliotecas vinculadas, as configurações do otimizador, os metadados e as versões do compilador devem corresponder à implantação.As equipes devem preservar as informações de build para que a verificação possa ser reproduzida posteriormente.Plugins do Hardhat
Os plugins ampliam as funções de desenvolvimento do Hardhat.Plugins oficiais oferecem suporte a viem, ethers, asserções, auxiliares de rede, verificação de contratos, implantações com Ignition, armazenamento criptografado de configurações, assinadores de hardware e executores de testes.O diretório oficial de plugins lista os plugins mantidos pela Nomic Foundation.
Plugins da comunidade podem oferecer recursos valiosos, mas talvez não tenham recebido o mesmo nível de revisão ou manutenção.Um plugin malicioso pode conseguir ler arquivos do projeto, variáveis de ambiente, chaves, dados de implantação e tráfego de rede.Antes da instalação, os desenvolvedores devem analisar quem mantém o plugin, seu histórico de atualizações, código-fonte, dependências, permissões e compatibilidade.Segurança das dependências
Um projeto Hardhat depende de pacotes Node.js que podem executar código durante a instalação, os testes ou a implantação.Uma dependência comprometida pode tentar roubar variáveis de ambiente, chaves privadas, código-fonte ou credenciais de implantação.Os projetos devem incluir um arquivo de lock no repositório e revisar alterações inesperadas nas dependências.As implantações de produção devem usar sistemas limpos, com o mínimo de software e versões de pacotes verificadas.Atualizações automatizadas de dependências não devem ser integradas sem testes e revisão.A popularidade de um pacote não garante que todas as suas versões sejam seguras.Hardhat e chaves privadas
Hardhat pode precisar acessar uma conta de assinatura quando implanta contratos ou chama contratos em uma rede externa.Usar uma chave privada em texto simples em um arquivo de configuração cria um risco grave de segurança.As chaves de desenvolvimento devem conter apenas fundos de teste.As chaves de produção devem ser protegidas por armazenamento criptografado, assinatura por hardware, permissões limitadas ou procedimentos multisig.Sempre que possível, a conta de implantação deve manter apenas o valor necessário para a transação planejada.Após a implantação, a propriedade administrativa pode ser transferida para uma conta mais segura.Os logs e relatórios de erro devem ser inspecionados para garantir que não revelem valores de configuração sensíveis.Hardhat e carteiras de hardware
Uma carteira de hardware pode assinar transações de implantação ou administração do Hardhat por meio de um plugin e de um fluxo de trabalho compatíveis.Isso pode manter a chave privada fora do computador de desenvolvimento.Quando possível, o dispositivo de hardware deve exibir o destino, a rede, o valor e os dados do contrato.Implantações complexas de contratos podem ser difíceis de interpretar em uma tela pequena do dispositivo.Uma carteira de hardware não consegue identificar uma implantação prejudicial só porque a transação foi gerada pelo Hardhat.O código-fonte, os artefatos compilados, os argumentos do construtor e os dados da transação ainda precisam ser revisados de forma independente.Erros comuns de segurança no Hardhat
Um erro comum é incluir uma chave privada ou frase de recuperação em um repositório de código-fonte.Outro erro é implantar na blockchain errada por confiar no rótulo da rede sem verificar o chain ID.Um terceiro erro é usar configurações diferentes do compilador para testes, implantação e verificação.Um quarto erro é testar apenas ações bem-sucedidas e ignorar chamadores não autorizados e condições de falha.Um quinto erro é depender de um fork de estado variável da blockchain sem fixar um número de bloco.Um sexto erro é instalar plugins não revisados que tenham acesso a segredos de implantação.Um sétimo erro é presumir que cobertura total de código equivale a uma auditoria de segurança.Um oitavo erro é dar à conta de implantação controle permanente sobre todas as funções do protocolo.Um nono erro é não verificar os endereços implantados e a propriedade depois que a implantação termina.Um décimo erro é enviar fundos reais para endereços de desenvolvimento gerados localmente cujas chaves nunca foram protegidas.Boas práticas para Hardhat
Fixe as versões do Hardhat, dos plugins, das bibliotecas e do compilador nos arquivos de dependências do projeto.Use uma versão compatível do Node.js e mantenha no repositório um arquivo de lock do pacote.Mantenha chaves privadas e endpoints sensíveis fora do repositório de código-fonte.Use contas diferentes para testes locais, testes públicos, implantação e administração de longo prazo.Escreva testes unitários, de integração, fuzz, de invariantes, de controle de acesso e de condições de falha.Execute a cobertura de código lembrando que ela mede a execução, não a correção.Use testes em fork fixados em blocos conhecidos para obter testes reproduzíveis de integração de protocolos.Revise as alterações de gas e o tamanho dos contratos antes da implantação.Verifique o código-fonte e preserve as informações de build depois da implantação.Contratos que controlam valores relevantes em cripto devem passar por uma revisão de segurança independente.Limitações do Hardhat
Hardhat não pode provar que o design econômico de um contrato é seguro.Não pode garantir que uma suíte de testes inclua todos os caminhos de ataque.Não consegue reproduzir perfeitamente todas as condições de uma rede de produção.Não pode impedir que um desenvolvedor assine uma transação com a conta ou a rede errada.Não consegue proteger uma chave privada armazenada de forma descuidada no projeto.Não pode tornar confiável uma dependência de terceiros insegura.Não substitui verificação formal, auditorias, programas de recompensas por bugs, monitoramento e planejamento de resposta a incidentes.Hardhat é mais eficaz quando usado como parte de um processo mais amplo de desenvolvimento seguro.Perguntas frequentes
O que é Hardhat em criptomoedas?
Hardhat é um ambiente de desenvolvimento usado para compilar, testar, depurar, implantar e verificar contratos inteligentes da Ethereum e compatíveis com EVM.Hardhat é uma blockchain?
Não. Hardhat é uma ferramenta de desenvolvimento de software, não uma rede blockchain.Hardhat é uma criptomoeda?
Não. Hardhat não representa uma moeda nem um token.Quem desenvolve Hardhat?
Hardhat é desenvolvido pela Nomic Foundation para a comunidade de desenvolvimento da Ethereum.Qual é a versão principal atual do Hardhat?
Hardhat 3 é a linha de versões principais atual.Qual é a versão mais recente do Hardhat?
Em 13 de julho de 2026, a versão marcada mais recente é Hardhat 3.9.1.Quais linguagens de programação Hardhat usa?
Projetos Hardhat costumam usar Solidity para contratos inteligentes e TypeScript ou JavaScript para configurações, scripts e testes de integração.O que Hardhat compila?
Hardhat compila o código-fonte Solidity em bytecode da EVM, ABIs, artefatos e informações relacionadas ao build.Hardhat inclui uma blockchain local?
Hardhat inclui redes blockchain simuladas, projetadas para desenvolvimento local e testes automatizados.Hardhat oferece suporte a testes em Solidity?
Sim. Hardhat 3 oferece suporte tanto a testes escritos diretamente em Solidity quanto a testes baseados em TypeScript.Hardhat pode executar testes fuzz?
Sim. Testes em Solidity podem gerar entradas variadas para testar propriedades e casos extremos.Hardhat pode testar invariantes de contratos?
Sim. Os desenvolvedores podem definir propriedades que devem permanecer verdadeiras em sequências geradas de ações de contratos.O que é Hardhat Ignition?
Hardhat Ignition é o sistema declarativo oficial de implantação para definir, executar, retomar e registrar implantações de contratos inteligentes.Hardhat pode implantar contratos em redes públicas?
Sim. Hardhat pode se conectar a um endpoint JSON-RPC externo e enviar transações de implantação assinadas.Hardhat exige criptomoedas reais para testes locais?
Não. As redes simuladas fornecem contas e saldos de desenvolvimento que não têm valor no mundo real.O que é fork de rede no Hardhat?
O fork de rede copia o estado da blockchain de um bloco selecionado de uma rede pública para uma simulação local, permitindo testes.Hardhat pode verificar um contrato inteligente?
Sim. O plugin oficial de verificação pode enviar o código-fonte e as informações de build para serviços de verificação compatíveis.A verificação de um contrato prova que ele é seguro?
Não. A verificação relaciona o código-fonte ao bytecode implantado, mas não comprova que a lógica é segura ou economicamente sólida.Uma cobertura alta de código significa que um contrato é seguro?
Não. Uma cobertura alta apenas mostra que o código foi executado durante os testes e não comprova que as propriedades corretas foram verificadas.Hardhat pode estimar o uso de gas?
Sim. Hardhat pode gerar estatísticas e snapshots de gas durante execuções de teste compatíveis.Hardhat pode se conectar a várias redes blockchain?
Sim. Hardhat 3 pode gerenciar várias conexões de rede e configurações de chains simuladas.É seguro armazenar uma chave privada na configuração do Hardhat?
Não. As chaves privadas devem ser carregadas por meio de um sistema externo protegido, e não incluídas em texto simples no repositório.Hardhat pode usar uma carteira de hardware?
Sim. Plugins e fluxos de trabalho compatíveis podem usar um dispositivo de hardware para assinar determinadas transações de implantação e administração.Todos os plugins do Hardhat são seguros?
Não. Os plugins podem acessar recursos sensíveis do projeto e devem ser revisados antes da instalação.Hardhat pode substituir uma auditoria de contrato inteligente?
Não. Hardhat oferece suporte ao desenvolvimento e aos testes, mas não substitui uma avaliação de segurança independente.Por que um teste em fork deve usar um bloco fixo?
Fixar um bloco mantém estável o estado copiado da blockchain para que futuras execuções dos testes continuem reproduzíveis.Hardhat pode impedir a implantação na rede errada?
Hardhat pode oferecer suporte a verificações, mas os desenvolvedores ainda precisam confirmar o chain ID, a conta, o endpoint e os parâmetros de implantação.Conclusão
Hardhat é um ambiente de desenvolvimento abrangente para criar software de contratos inteligentes da Ethereum e compatível com EVM.Ele reúne compilação, artefatos, redes simuladas, testes, depuração, implantação, verificação, scripts, tarefas e plugins em uma única estrutura de projeto.Hardhat 3 é a versão principal atual e adiciona testes nativos em Solidity, simulação multichain, artefatos tipados, perfis de build, cobertura de código e gerenciamento de redes mais flexível.Os desenvolvedores podem usar Hardhat para testar contratos localmente antes de gastar criptomoedas reais ou expor os ativos dos usuários a riscos.Hardhat Ignition oferece um sistema estruturado de implantação que pode retomar trabalhos interrompidos e registrar o estado da implantação.Testes em fork permitem reproduzir o estado de uma blockchain pública e testar interações com contratos existentes.Rastros de execução, relatórios de cobertura, testes fuzz, invariantes e estatísticas de gas podem revelar muitos problemas técnicos antes da implantação.Essas ferramentas não garantem segurança, pois a qualidade do resultado ainda depende do código-fonte, dos testes, das premissas, das dependências, das chaves e do processo de implantação.As chaves privadas devem ficar fora dos repositórios de código-fonte e usar procedimentos robustos de assinatura e controle de acesso.Plugins e dependências de pacotes devem ser revisados, pois podem acessar recursos sensíveis de desenvolvimento.Contratos de produção devem usar configurações de compilador fixadas, builds reproduzíveis, código-fonte verificado, revisão independente e monitoramento após a implantação.Para desenvolvedores de criptomoedas, Hardhat deve ser entendido como um espaço de trabalho poderoso para reduzir os riscos do desenvolvimento de contratos inteligentes, e não como substituto da engenharia cuidadosa e da revisão de segurança.Você também pode gostar
HOT
Criptomoedas que estão em alta atualmente e ganhando atenção significativa do mercado
TOP volume
As criptomoedas com o maior volume de negociação
Recém-adicionados
Criptomoedas listadas recentemente que estão disponíveis para negociação

