Uma extensão para Chrome que transforma conversas do WhatsApp em provas digitais forenses — com hash criptográfico por mensagem, registro imutável em blockchain e sete arquivos prontos para juntada processual.
Em três decisões recentes, o Superior Tribunal de Justiça firmou entendimento de que provas digitais sem protocolo técnico de integridade são inadmissíveis — independente de quem as produziu. A jurisprudência mudou. Quem ainda usa print simples arrisca ter a prova rejeitada.
A 5ª Turma entendeu que capturas de tela de conversas no WhatsApp Web — mesmo realizadas por autoridade policial — não observam a cadeia de custódia prevista nos arts. 158 e seguintes do CPP e constituem prova ilícita.
O descumprimento dos arts. 158-A a 158-F do CPP — que exigem hash calculado antes do manuseio, documentação de cada etapa e possibilidade de auditoria técnica — compromete irremediavelmente a validade da prova digital.
O STJ anulou condenação por roubo qualificado porque as provas eram apenas imagens de conversas de WhatsApp sem hash calculado, sem documentação de coleta e sem possibilidade de auditoria. O acórdão é taxativo: "não se pode presumir que um print é autêntico."
Provas digitais têm uma janela de oportunidade. Uma conversa que aconteceu hoje pode ser a prova decisiva de um processo que começa em meses — mas se não for capturada agora com cadeia de custódia, pode ser inadmitida quando você precisar. O momento de instalar é antes de precisar, não depois.
Qualquer pessoa com um celular e 5 minutos consegue editar uma conversa do WhatsApp. Isso torna o print sozinho uma prova frágil — facilmente impugnável e contestada em juízo.
Todo o processo é automático. Você abre a conversa, clica em "Registrar" e o sistema executa seis camadas de proteção simultaneamente, sem nenhuma intervenção manual.
Assim que você clica em "Registrar", a extensão começa a tirar screenshots automáticos da aba do Chrome a cada 2 segundos — incluindo a barra de endereço mostrando web.whatsapp.com. Isso cria um filme do processo de captura que prova que nenhuma edição aconteceu durante a operação.
Analogia: é como ter uma câmera de segurança gravando enquanto você coleta a evidência — qualquer tentativa de adulteração seria filmada.
Log fotográfico de sessão · captureVisibleTabAntes de qualquer captura, o sistema consulta servidores de tempo internacionais (NTP) para registrar o horário exato de forma independente do relógio do seu computador. Dois fusos horários diferentes são consultados e comparados — a diferença exata de 3 horas entre eles confirma que as respostas são autênticas.
Analogia: é como ligar para dois relógios oficiais diferentes antes de fazer o registro — se ambos mostram a mesma hora, ela é verdadeira.
NTP · timeapi.io · Validação cruzada UTC/BRTO WhatsApp Web tem duas camadas: o que você vê (texto colorido, fotos, emojis) e o que está por baixo — o código-fonte HTML da página, chamado DOM. Nesse código existem dados que o usuário não vê: o ID único de cada mensagem gerado pelo servidor do WhatsApp, o número de telefone real do remetente e o horário registrado no servidor (não no celular). O WF captura esse código bruto completo.
Analogia: é a diferença entre fotografar a fachada de um edifício e ter a planta arquitetônica original com todos os detalhes estruturais.
DOM capture · document.documentElement.outerHTMLPara cada uma das mensagens capturadas, o sistema calcula um código único de 64 caracteres chamado hash SHA-256. Funciona como uma impressão digital: textos idênticos sempre geram o mesmo código, e qualquer alteração — nem que seja mudar uma letra ou adicionar um espaço — gera um código completamente diferente. É matematicamente impossível fabricar um texto que produza o mesmo hash de outro texto diferente.
Analogia: é como selar cada página de um documento com cera lacrada personalizada — qualquer abertura deixa uma marca irreversível.
SHA-256 · crypto.subtle · Service Worker isoladoO hash geral do conjunto de provas é enviado para a rede Bitcoin através do protocolo OpenTimestamps. Uma vez incluído num bloco minerado, esse registro existe em milhares de computadores ao redor do mundo simultaneamente. Não pode ser apagado, alterado ou removido por ninguém — nem pelo WhatsApp, nem pela Meta, nem pelo emissor do relatório. Qualquer pessoa pode verificar gratuitamente em opentimestamps.org.
Analogia: é como publicar uma notícia em milhares de jornais impressos do mundo inteiro no mesmo dia — impossível recolher todos e alterar a história.
OpenTimestamps · Bitcoin Mainnet · Merkle TreeTudo que foi capturado é empacotado automaticamente: o relatório HTML com todas as provas, o arquivo blockchain (.ots), o JSON com metadados de cada mensagem, o DOM bruto, os prints progressivos com hash embutido, o manifesto da cadeia e o log de operações. Sete arquivos. Zero etapas manuais. Prontos para juntada processual.
JSON · OTS · HTML · DOM · JPG · Manifesto · LogFuncionalidades completas, arquivos gerados e guia pericial — tudo reunido para que você entenda o que está comprando ou possa apresentar a magistrados e peritos.
Cada funcionalidade foi projetada para responder a um vetor específico de questionamento judicial. Juntas, formam uma cadeia de custódia matematicamente irrefutável.
Cada mensagem recebe uma "impressão digital" criptográfica única. Qualquer alteração no texto — mesmo um único caractere — produz hash completamente diferente, tornando adulteração imediatamente detectável.
Web Crypto APIO hash do pacote é ancorado na rede Bitcoin via OpenTimestamps. Cria prova matemática de que o documento existia com aquele conteúdo naquela data e hora — imutável e verificável por qualquer pessoa sem depender do emissor.
OpenTimestamps v1Consulta dois fusos horários simultâneos (UTC e UTC-3). Validação cruzada automática: diferença de exatamente 3 horas prova que ambos os servidores retornaram dados reais e independentes.
timeapi.ioPrints progressivos do topo ao fim da conversa, cada um com hash SHA-256 e referência ao hash anterior. A sequência é impossível de fabricar, reordenar ou substituir parcialmente.
Cadeia criptográficaExtrai o HTML bruto da área de conversa antes e depois da captura. Compara hash t=0 com hash final — prova que nenhuma edição via DevTools ocorreu durante a operação.
Hash duplo t=0/finalCaptura a tela inteira do Chrome a cada 2 segundos, incluindo a barra de endereço (web.whatsapp.com). Prova que a operação ocorreu no WhatsApp real — headless browsers não exibem a barra de endereço.
2s/frame · encadeadoExtrai o telefone do atributo data-id das mensagens no DOM — gerado pelo servidor WhatsApp, independente do nome de contato salvo na agenda do usuário.
Gera um identificador único que aparece em todos os artefatos produzidos. Vinculação idêntica em contextos de execução separados é computacionalmente impossível de coordenar artificialmente.
UUID v4Verifica antes de cada screenshot se a conversa visível no DOM corresponde à selecionada. Descarta automaticamente capturas de outras conversas e registra o evento no log.
Anti-contaminaçãoO pacote de evidências é completo e autocontido. Todos os arquivos devem ser preservados juntos — cada um referencia os demais criptograficamente.
Contém todas as mensagens com hashes individuais, metadados NTP, integridade DOM, session log, UUID de sessão e cadeia de custódia completa. É este arquivo que é registrado na blockchain.
🔗 Registrado na blockchainArquivo OpenTimestamps com o hash SHA-256 do JSON ancorado na rede Bitcoin. Necessário para verificação em opentimestamps.org — confirma data e hora de existência do documento.
⛓️ Âncora temporal irrefutávelRelatório completo com mensagens renderizadas, prints progressivos inline, dados NTP, DOM capturado, UUID de sessão e instruções de verificação. Pode ser juntado diretamente no e-Proc.
📋 Compatível com e-ProcHTML bruto da área de conversa extraído diretamente do navegador. Prova o estado real da interface do WhatsApp Web no momento da captura — independente das mensagens processadas.
🌐 Estado bruto do DOMImagens individuais com overlay de metadados: número de sequência, hash SHA-256, hash anterior e timestamp. Necessários para verificar o encadeamento registrado no JSON.
🔗 Cadeia verificávelLista todos os prints com hashes individuais, encadeamento criptográfico (previousHash) e as mensagens do lote que disparou cada captura. Permite auditoria independente da sequência.
📋 Auditoria independenteRegistro completo de toda a operação em sequência temporal — incluindo erros, avisos e eventos de segurança. O próprio log tem SHA-256 calculado para verificação de integridade.
📊 Auditoria da operação.html é o que vai ao processo. Os arquivos .json e .ots devem ficar à disposição do Juízo por 30 dias para verificação de autenticidade — cite isso expressamente na petição..jpg separados — o JSON contém apenas os hashes, não as imagens. Resultado: ~100 KB em vez de 3 MB. O hash registrado na blockchain corresponde a este JSON lean.Cada questionamento técnico que a parte contrária pode levantar tem uma resposta matemática e documentável. Clique em cada alegação para ver a refutação completa.
Destinado a advogados, peritos e magistrados. Cada card apresenta uma alegação que a parte contrária pode fazer e a refutação técnica correspondente, com referência aos campos específicos do pacote de evidências que podem ser verificados independentemente.
O hash SHA-256 do arquivo JSON é calculado após o strip de imagens e antes de qualquer download — o código é auditável. O arquivo .ots contém exatamente o hash do JSON que está nos downloads, e qualquer diferença entre o hash do .ots e o recalculado sobre o arquivo .json indicaria adulteração — que o verificador em opentimestamps.org detectaria imediatamente. A sequência é atômica: hash → OTS → download. Não há janela de edição.
O campo domIntegrity.hashBefore no JSON registra o hash SHA-256 do código-fonte completo da página em t=0 — no primeiro milissegundo da operação, antes de qualquer processamento. O campo domIntegrity.unchanged compara com o hash final. Qualquer edição via DevTools alteraria o hash. Para que a alegação fosse verdadeira, a edição teria ocorrido em menos de 1 milissegundo do clique — o que é fisicamente impossível.
O código da extensão pode ser inspecionado integralmente em chrome://extensions (modo desenvolvedor). O hash SHA-256 de cada arquivo pode ser calculado independentemente e comparado com a versão distribuída. Além disso, o UUID de sessão gerado no service worker (contexto isolado) corresponde ao UUID no JSON (gerado pelo content script) — se a extensão estivesse falsificando dados, essa correspondência seria impossível de coordenar artificialmente.
O campo originalTimestamp de cada mensagem vem do DOM do WhatsApp — gerado pelos servidores do WhatsApp, não pelo usuário. O servidor atribui o timestamp no momento do envio e este valor não pode ser alterado pelo remetente. Se a mensagem fosse fabricada, o servidor do WhatsApp registraria o IP, horário e dispositivo real de envio — disponíveis mediante ordem judicial (Marco Civil, art. 10).
Esta alegação não é específica ao sistema de captura — está presente em qualquer tipo de prova digital. O WhatsApp utiliza criptografia de ponta a ponta vinculada ao número de telefone com verificação de dispositivo. O sistema registra o JID verificado via data-id DOM — gerado pelo servidor WhatsApp — e o histórico de IPs de acesso pode ser requisitado ao WhatsApp/Meta mediante ordem judicial (Marco Civil, art. 10).
O Layer ID (@lid) é um identificador interno permanente e único gerado pelo servidor WhatsApp para cada conta — não atribuído pelo usuário nem pelo dispositivo. O campo verifiedPhone.jid no JSON registra este identificador com a amostra de data-id das mensagens. A vinculação LID → número real é mantida pelo WhatsApp/Meta e pode ser obtida mediante requisição judicial fundamentada no Marco Civil (Lei 12.965/2014, art. 10).
O log fotográfico captura a tela completa do Chrome a cada 2 segundos, incluindo a barra de endereço mostrando web.whatsapp.com — não uma página estática ou simulada. Contas clonadas ou falsas teriam JIDs diferentes dos verificados — o JID está no servidor WhatsApp, não no dispositivo do usuário. O sistema extrai o JID do atributo data-id gerado pelo servidor, não do nome de contato local.
O sistema não utiliza o relógio do dispositivo como âncora primária. Consulta o servidor externo timeapi.io em dois fusos simultâneos (Brasília UTC-3 e UTC), com latência registrada em milissegundos. O campo ntpData.crossValidation.consistent confirma que a diferença entre os dois resultados é exatamente 3 horas — provando que ambos são autênticos. O registro Bitcoin fornece uma segunda âncora completamente independente. Para contestar a temporalidade, seria necessário provar que dois servidores NTP externos coordenaram dados falsos E que a rede Bitcoin registrou o bloco na data errada — computacionalmente impossível.
O arquivo .ots em estado "pendente" já prova que o hash foi submetido ao calendário OpenTimestamps — registrado no log do servidor. A confirmação definitiva ocorre quando o próximo bloco Bitcoin é minerado (10 min a 2h). O estado pendente é uma característica do protocolo, não uma falha: o hash já está comprometido e não pode ser alterado. Recomenda-se aguardar a confirmação antes da juntada — verificável gratuitamente em qualquer momento futuro em opentimestamps.org.
O sistema percorre a conversa do topo ao fim automaticamente, sem intervenção do usuário. O campo domIntegrity.continuity no JSON registra qualquer intervalo temporal longo detectado entre mensagens — documentando lacunas mesmo quando presentes. O log fotográfico exibe o scroll em sequência temporal, tornando qualquer omissão visível nas imagens. O campo statistics.totalMessages registra a contagem final para conferência.
O sistema não permite seleção parcial durante a captura automática — percorre a conversa integralmente do topo ao fim em movimento contínuo registrado no log fotográfico. Se a parte contrária alegar que há mensagens anteriores relevantes, estas podem ser capturadas em nova sessão — gerando hash diferente, provando que são documentos distintos. A ausência de mensagens anteriores pode ser questão de direito material, não de adulteração técnica.
Cada screenshot possui hash SHA-256 individual registrado no manifesto. Qualquer edição na imagem — mesmo um único pixel — altera o hash completamente. O encadeamento via previousScreenshotHash significa que a adulteração de um print invalida todos os prints subsequentes. Para falsificar um print do meio da cadeia, seria necessário recalcular todos os hashes encadeados e sincronizá-los com o JSON — que está registrado na blockchain Bitcoin, onde o hash original é imutável.
As imagens foram capturadas pela API nativa chrome.tabs.captureVisibleTab do Chrome — que fotografa a aba completa incluindo a barra de endereço mostrando web.whatsapp.com. Ferramentas como puppeteer, selenium e playwright — todos headless browsers — não exibem a barra de endereço. A barra de endereço visível nas imagens é a prova técnica irrefutável de que a captura foi feita no Chrome real. O UUID de sessão aparece em todos os frames — coordenar um UUID idêntico em artefatos de contextos separados é impossível sem acesso ao código-fonte.
Nenhum software de captura forense de WhatsApp tem "certificação oficial" do WhatsApp — a própria Meta não fornece este tipo de ferramenta. O critério técnico-jurídico adequado é a conformidade com normas de perícia digital: ISO/IEC 27037:2012 (preservação de evidências digitais) e a orientação do STJ de que evidências digitais devem possuir hash criptográfico. O código da extensão é inspecionável no Chrome, os algoritmos (SHA-256, OpenTimestamps) são padrões públicos auditáveis por qualquer perito, e a verificação do resultado pode ser feita independentemente sem acesso à extensão.
Esta é exatamente a função do arquivo .ots. O hash SHA-256 do JSON foi submetido à rede Bitcoin no momento da captura. Se o JSON fosse editado depois, o novo hash seria diferente — e a verificação em opentimestamps.org falharia, porque o hash registrado na blockchain não corresponderia. A blockchain Bitcoin tem mais de 15 anos de operação contínua, é globalmente distribuída e matematicamente imutável. A correspondência entre o hash do .ots e o hash calculado sobre o .json presente é a prova de integridade objetiva.
O log fotográfico de sessão serve como testemunha técnica objetiva: registra cada 2 segundos da operação com hash encadeado, incluindo a tela real do Chrome com a barra de endereço. O log de console com SHA-256 registra cada evento com precisão de milissegundos. O UUID de sessão vincula todos os artefatos a um único momento. A âncora blockchain é um registro público e imutável — não depende de testemunho humano. A prova digital com hash criptográfico foi especificamente desenvolvida para eliminar o subjetivismo da memória humana.
.json e pelo verificador público em opentimestamps.org — sem necessidade de instalar qualquer software adicional.Cada camada ataca um vetor diferente de contestação. Para invalidar esta prova, um perito adversário teria que comprometer todas as sete simultaneamente — o que é tecnicamente inviável.
O código-fonte da página é fotografado antes de qualquer processamento. Impossível editar o DOM antes do hash — o sistema calcula em menos de 1 milissegundo.
Destrói a alegação: "editou antes do hash"
Dois servidores de hora independentes são consultados antes da captura. A diferença exata de 3h entre UTC e Brasília confirma autenticidade cruzada.
Destrói a alegação: "o timestamp foi fabricado"
Um identificador único é gerado no início e aparece em todos os artefatos: log fotográfico, NTP, DOM e relatório. Vinculação impossível de coordenar artificialmente.
Destrói a alegação: "os arquivos não são da mesma sessão"
Capturas a cada 2 segundos com a barra de endereço visível. Imagens geradas por script não têm a barra do Chrome — este é o diferencial visual irrefutável.
Destrói a alegação: "os prints foram gerados artificialmente"
Cada mensagem tem sua impressão digital individual. Alterar uma vírgula gera um hash completamente diferente — detectável por qualquer ferramenta gratuita.
Destrói a alegação: "o texto das mensagens foi alterado"
Registro em rede distribuída por milhares de computadores. Verificável por qualquer pessoa, sem depender do emissor. Imutável desde a mineração do bloco.
Destrói a alegação: "a data do registro foi fabricada"
O número real do interlocutor é extraído do atributo interno data-id das mensagens — gerado pelo servidor do WhatsApp, independente do nome salvo na agenda.
Destrói a alegação: "o nome do contato foi alterado"
Em computação forense, "cadeia de custódia" significa: documentar cada passo que a prova percorreu, de quem a coletou, como, quando e com quê — de forma que nenhum passo foi contaminado.
Três formas de preservar uma prova digital. Qual escolher depende do que você precisa provar — e de quanto a parte contrária vai contestar.
| 🏛️ Ata Notarial | 📋 e-Not Provas Colégio Notarial |
⚡ WhatsApp Forense | |
|---|---|---|---|
| Quem opera | Tabelião presencial | Usuário — no site deles | Você — extensão Chrome |
| Hash criptográfico por mensagemImpressão digital individual de cada texto | ✗ Não | ✗ Não | ✓ SHA-256 |
| Captura do código-fonte (DOM)Dados técnicos ocultos que não aparecem na tela | ✗ Não | ✗ Não | ✓ Completo |
| Blockchain público imutávelVerificável por qualquer pessoa sem depender do emissor | ✗ Não | ~ Notarchain¹ | ✓ Bitcoin |
| Log visual do processo de capturaProva de que nenhuma edição ocorreu durante a operação | ~ Tabelião presente | ~ Servidor deles | ✓ Fotográfico (2s) |
| Âncora temporal independenteHorário verificado por fonte externa ao operador | ~ Declarativo | ~ Servidor deles | ✓ NTP externo |
| Verificação por perito independenteSem depender do sistema do emissor | ~ Fé pública | ~ Via Notarchain | ✓ Ferramentas abertas |
| Número real do interlocutorIndependente do nome salvo na agenda | ✗ Não | ✗ Não | ✓ Via JID/LID |
| Custo por captura | R$ 300–800+ | R$ 4–7 / tela | Ilimitado |
| Disponibilidade | Horário comercial | Online — mas por tela | 24h — um clique |
| Resistência técnica à impugnação | ~ Fé pública | ~ Média | ✓ Matemática |
¹ Notarchain é rede permissionada dos tabeliães — acesso de validação restrito. Bitcoin é rede pública — verificação irrestrita por qualquer pessoa.
A ata notarial transfere o ônus da credibilidade para a autoridade do cargo. O e-Not Provas transfere para a credibilidade do Colégio Notarial. O WhatsApp Forense transfere para a matemática e para uma rede distribuída de milhares de mineradores Bitcoin. Quando a parte contrária impugna uma ata notarial, questiona a palavra do tabelião — argumento difícil, mas possível. Quando impugna um registro blockchain verificado com hash SHA-256 por mensagem, afirma que a rede Bitcoin foi comprometida retroativamente para alterar um hash específico — o que é computacionalmente inviável com qualquer tecnologia existente.
Cada captura gera automaticamente um conjunto completo de arquivos prontos para juntada processual. Nenhuma etapa manual.
Todas as mensagens com metadados completos, timestamps, IDs nativos e hash SHA-256 individual de cada mensagem.
Arquivo OpenTimestamps com o caminho completo até o bloco Bitcoin. Verificável em opentimestamps.org por qualquer pessoa.
Relatório completo com cadeia de custódia, NTP, sessão fotográfica, análise de integridade do DOM e guia pericial.
Estrutura HTML interna do WhatsApp Web — permite análise técnica de IDs, timestamps de servidor e atributos ocultos.
Screenshots progressivos com SHA-256, sequência e hash do frame anterior embutidos na barra inferior de cada imagem.
JSON com a cadeia completa de hashes de cada print — verificável sequência a sequência, impossível reordenar ou remover.
Registro cronológico de cada etapa: ambiente, navegador, fuso horário, NTP e todas as ações do sistema com SHA-256 próprio.
O sistema foi desenvolvido em conformidade com a legislação vigente e as melhores práticas internacionais de computação forense.
O Código de Processo Civil disciplina a prova documental eletrônica, estabelecendo que a autenticidade pode ser demonstrada por qualquer meio capaz de assegurar integridade — exatamente o que o hash SHA-256 e o blockchain fornecem.
Prevê a proteção das comunicações e a possibilidade de disponibilização de registros para produção de provas em procedimentos judiciais. O LID/JID capturado permite identificação do interlocutor via ordem judicial ao WhatsApp.
Documentos eletrônicos que assegurem integridade e autoria são válidos mesmo sem certificação ICP-Brasil, desde que aceitos por quem lhes é oposto ou admitidos pelo juízo — o que o conjunto de evidências do WF proporciona.
Reconhece expressamente a validade de provas digitais produzidas com mecanismos capazes de atestar autoria e integridade, incluindo tecnologias de registro distribuído — categoria em que o OpenTimestamps/Bitcoin se enquadra.
Nos primeiros 90 dias, quem entrar trava o preço de fundador para sempre — mesmo quando os planos subirem.
Institucional · Tribunais · Delegacias · Grandes Bancas
Planos sob medida com volume, integração e contrato personalizado.
Solicitar PropostaUma ata notarial custa R$ 500. Sua assinatura custa R$ 67.
E entrega sete camadas de proteção técnica que nenhum tabelião consegue oferecer.
Garantir Acesso Fundador — R$ 67/mêsPreço sobe para R$ 97/mês após o período de lançamento