Lendo uma blockchain com exploradores públicos · Aula 6 de 8
Lendo uma transação Ethereum
6 min de leitura
Contas em vez de moedas
O Bitcoin rastreia saídas não gastas. O Ethereum e a maioria das redes construídas de forma semelhante rastreiam contas. A blockchain mantém um estado global no qual cada conta tem um saldo, e uma transação simplesmente transfere valor do saldo de uma conta para o de outra. Não há entradas, saídas nem troco para calcular, o que torna as transações Ethereum mais fáceis de entender à primeira vista.
Há dois tipos de conta, e os exploradores sempre informam qual deles você está consultando:
- Contas de propriedade externa (EOAs) são controladas por uma chave privada. Pessoas e organizações as usam por meio de carteiras. Somente uma EOA pode iniciar uma transação.
- Contas de contrato contêm código: um contrato inteligente. Elas não têm chave privada. Só agem quando uma transação (ou outro contrato) as chama; então, seguem exatamente o código.
Em um explorador, a página de um endereço de contrato geralmente mostra uma aba "Contract", muitas vezes com o código-fonte, caso ele tenha sido verificado, enquanto uma página de EOA não mostra essa aba. Desde a atualização Pectra, em maio de 2025, uma EOA também pode delegar para código de contrato (EIP-7702), e os exploradores identificam essas contas de forma especial; ela continua sendo controlada por sua chave privada.
As partes de uma página de transação Ethereum
Abra qualquer transação em um explorador Ethereum e você encontrará os mesmos campos principais.
| Campo | O que informa | O que verificar |
|---|---|---|
| Hash da transação | O ID exclusivo (0x + 64 caracteres hexadecimais) | Se corresponde ao que foi informado |
| Status | Sucesso, Falhou (revertida) ou Pendente | Uma transação com falha não transferiu valor |
| Bloco | O bloco que a incluiu, com confirmações | Se alcançou a finalidade |
| Registro de data e hora | Quando esse bloco foi produzido | O fuso horário exibido |
| De | A EOA que assinou e pagou pela transação | Se é o remetente esperado |
| Para | A conta destinatária ou o contrato chamado | Em transferências de tokens, este é o contrato do token |
| Valor | ETH enviado diretamente com a transação | Geralmente 0 ao chamar um contrato |
| Taxa da transação | Gás usado × preço efetivo do gás, em ETH | É paga mesmo se a transação falhar |
| Limite e uso de gás | Quantidade máxima de gás permitida e quantidade realmente usada | Um uso muito alto sugere uma chamada complexa |
| Nonce | Contador de transações do remetente | Veja abaixo |
| Dados de entrada | Instruções para um contrato, se houver | Nome do método decodificado, geralmente disponível |
Status: sucesso, falha ou pendente
Uma transação bem-sucedida fez tudo o que se propunha a fazer. Uma transação com falha (ou revertida) encontrou um erro, por exemplo, porque as condições de um contrato não foram atendidas ou porque ficou sem gás. Quando isso acontece, todas as alterações que ela tentou fazer são desfeitas, exceto a taxa: o remetente ainda paga pelo gás usado até o momento da falha.
Então, se alguém disser "Enviei 2 ETH para você, aqui está o hash", verifique primeiro o status. Uma transação com falha que mostra "Valor: 2 ETH" significa que os 2 ETH nunca saíram do remetente.
Pendente significa que a transação está aguardando no mempool. Ela ainda não tem número de bloco.
O nonce: por que as transações ficam presas em uma fila
Toda EOA tem um nonce, um contador que começa em 0 e aumenta em um a cada transação enviada pela conta. As transações da mesma conta precisam ser incluídas na ordem dos nonces: a número 7 não pode ser confirmada antes da número 6.
Isso tem efeitos práticos que os exploradores tornam visíveis:
- Se a transação 6 ficar presa por ter uma taxa muito baixa, as transações 7, 8 e 9 da mesma conta ficam esperando atrás dela, mesmo que paguem taxas altas.
- Para resolver isso, a carteira envia uma nova transação com o mesmo nonce e uma taxa maior. Apenas uma transação por nonce pode ser confirmada; por isso, a nova substitui a antiga. As carteiras chamam isso de "acelerar". "Cancelar" funciona da mesma forma: envia 0 ETH para o próprio endereço do remetente usando esse nonce.
- No explorador, a transação substituída nunca recebe um bloco e, por fim, desaparece ou é marcada como descartada ou substituída.
O nonce também indica aproximadamente o nível de atividade de uma conta: uma EOA com nonce 1.250 enviou cerca de 1.250 transações (as autorizações de delegação sob o EIP-7702 também aumentam esse valor).
Dados de entrada: o que a transação pediu a um contrato para fazer
Quando uma transação chama um contrato inteligente, as instruções são transmitidas no campo de dados de entrada. Os primeiros 4 bytes identificam a função chamada (o ID do método ou seletor de função), e o restante contém os argumentos.
Os dados de entrada brutos são uma longa sequência hexadecimal, difícil de ler. Se o código-fonte do contrato tiver sido verificado no explorador, este poderá decodificá-lo por completo e mostrar o nome do método e os argumentos, por exemplo, transfer(to, amount) ou approve(spender, amount). Mesmo para contratos não verificados, os exploradores geralmente mostram um nome de método consultando o seletor de 4 bytes em bancos de dados públicos de assinaturas. Muitos exploradores mostram o nome do método em uma coluna nas listas de transações, permitindo ver rapidamente se uma conta está fazendo swaps, aprovações ou transferências.
Uma transação que apenas envia ETH de uma EOA para outra tem dados de entrada vazios (exibidos como 0x).
Transações internas
Quando um contrato é executado, ele pode enviar ETH para outras contas ou chamar outros contratos. Esses movimentos não são transações assinadas separadas: acontecem durante a execução da transação original. Os exploradores os reconstroem reproduzindo a transação e os listam em uma aba chamada transações internas (ou "rastros").
Isso é importante quando você procura um pagamento. Se um usuário retirou ETH de um serviço por meio do contrato inteligente dele, o ETH pode chegar ao endereço do usuário por meio de uma transação interna e, por isso, não aparecerá na lista principal de transações do endereço destinatário. Sempre verifique a aba de transações internas antes de concluir que nada chegou.
Logs e eventos
Os contratos também podem gravar logs (eventos) durante a execução: registros estruturados, como "Transferência de A para B de 100 unidades". Os exploradores os mostram em uma aba Logs ou Eventos. Os logs são a forma como os exploradores identificam movimentos de tokens, que a próxima lição abordará em detalhes.
Outras redes baseadas em contas
Muitas outras redes também usam contas, mas com vocabulário diferente:
- Redes EVM, como Polygon, Arbitrum, Base e BNB Smart Chain, usam exatamente a mesma estrutura de transação; portanto, tudo nesta lição se aplica diretamente. Só mudam a moeda nativa e o explorador.
- Solana chama o ID da transação de assinatura, produz blocos em slots com duração bem inferior a um segundo e mostra uma lista de instruções em vez de um único campo de dados de entrada.
- Tron tem seu próprio formato de endereço, que começa com T, e seu próprio modelo de recursos, em vez de gás.
As habilidades se aplicam a todas elas: encontrar o ID, verificar o status, identificar remetente e destinatário, ver o que foi chamado e quanto custou.
Foco no exame: EOAs versus contas de contrato; os principais campos de uma página de transação Ethereum; transações com falha (o valor não é transferido, mas a taxa ainda é paga); como o nonce ordena as transações e como acelerar e cancelar reutilizam o mesmo nonce; o que são os dados de entrada e o ID do método e por que contratos verificados podem ser decodificados; e por que alguns ETH recebidos só aparecem em transações internas.
Questões de prática
Verifique o que você aprendeu. Estas questões não contam para o exame.
Entre para salvar seu progresso e continuar de onde parou. É grátis. Entrar