Quando si apre una transazione su Etherscan, la riga principale spesso mostra soltanto un’informazione essenziale: l’operazione è stata confermata oppure no. Questo, però, non basta a capire che cosa sia realmente accaduto. Una singola transazione può chiamare uno smart contract, trasferire token, creare o distruggere asset, modificare autorizzazioni e generare diversi eventi nello stesso momento.
Per ricostruire questi passaggi bisogna imparare a leggere i log degli eventi, chiamati anche event logs. Sono i messaggi registrati dagli smart contract durante l’esecuzione di una transazione. Non sono un semplice dettaglio tecnico: permettono di collegare un’azione a un trasferimento di token, a un’approvazione o a un’attività svolta dentro un protocollo.
Questa guida spiega come interpretarli su Etherscan, quali informazioni offrono e quali errori evitare. L’obiettivo non è analizzare il codice completo di un contratto, ma capire il significato operativo dei dati visibili nella ricevuta di una transazione.
Che cosa sono gli eventi e i log di uno smart contract
Uno smart contract Ethereum può emettere eventi quando accade qualcosa di rilevante. Per esempio, un token conforme allo standard ERC-20 emette normalmente un evento Transfer quando una quantità di token passa da un indirizzo a un altro. Lo stesso contratto può emettere un evento Approval quando un indirizzo autorizza un altro soggetto a spendere token per suo conto.
L’evento non è una nuova transazione separata. È una registrazione prodotta durante l’esecuzione di una transazione già esistente. Per questo una singola operazione può contenere più log e, di conseguenza, più eventi.
In termini pratici, un log può indicare:
- quale contratto ha generato l’evento;
- il nome dell’evento, quando Etherscan riesce a decodificarlo;
- gli indirizzi e i valori coinvolti;
- eventuali parametri aggiuntivi, come un identificativo NFT o il destinatario di un’operazione;
- l’ordine in cui l’evento è stato emesso rispetto agli altri log della transazione.
Gli eventi sono pensati soprattutto per essere letti da applicazioni, explorer e strumenti di analisi. Non costituiscono necessariamente una prova completa di tutto ciò che è accaduto nel contratto: descrivono soltanto le informazioni che lo smart contract ha scelto di registrare.
Dove trovare i log su Etherscan
Per analizzare gli eventi bisogna prima aprire la pagina della transazione tramite il relativo hash. Nella sezione iniziale Etherscan mostra normalmente il risultato dell’operazione, il mittente, il destinatario, il valore di ETH trasferito, la commissione e altri dati di base.
La parte utile per questa guida è la sezione chiamata generalmente Logs, spesso collocata nella pagina dei dettagli della transazione o nella ricevuta. La posizione esatta degli elementi può cambiare in base alla versione dell’interfaccia, ma il concetto rimane lo stesso.
Ogni riquadro dei log contiene di norma:
- Address: l’indirizzo del contratto che ha emesso l’evento;
- Name: il nome decodificato dell’evento, per esempio Transfer o Approval;
- Topics: i dati utilizzati per identificare l’evento e alcuni parametri indicizzati;
- Data: i parametri non indicizzati, presentati in formato decodificato quando possibile.
Il campo Address è particolarmente importante. Non indica necessariamente il wallet dell’utente e non coincide sempre con il destinatario visibile nella schermata principale. Indica il contratto che ha generato quel particolare evento. Una transazione può quindi avere un destinatario iniziale, come un router DeFi, e produrre log emessi da uno o più contratti di token.
Come leggere un evento Transfer
L’evento Transfer è uno dei più frequenti. Nei token ERC-20 rappresenta, in forma semplificata, un movimento di token tra un indirizzo mittente e un indirizzo destinatario. I dati principali sono normalmente:
- l’indirizzo da cui i token risultano trasferiti;
- l’indirizzo che li riceve;
- la quantità trasferita;
- il contratto del token che ha emesso l’evento.
È essenziale distinguere il trasferimento di ETH dal trasferimento di token. Il valore di ETH inviato direttamente dalla transazione viene mostrato nei dettagli principali. Un evento Transfer, invece, può riguardare un token ERC-20, un NFT o un altro asset che utilizza una struttura compatibile.
Per capire quale asset è coinvolto non basta leggere il nome Transfer. Bisogna verificare l’indirizzo del contratto che ha emesso il log. Due contratti diversi possono usare lo stesso nome di evento per asset completamente differenti. Il simbolo e il nome visualizzati da Etherscan sono utili, ma il contratto resta il riferimento più importante.
Una situazione frequente si verifica durante uno swap. La stessa transazione può produrre:
- un evento Transfer dal wallet verso il contratto o il router;
- uno o più trasferimenti tra pool e contratti intermedi;
- un trasferimento finale del token ricevuto verso il wallet;
- eventi aggiuntivi relativi a commissioni o ricompense.
Di conseguenza, vedere un evento Transfer non significa automaticamente che l’utente abbia eseguito un semplice invio manuale. Il contesto della transazione e l’ordine dei log sono indispensabili.
Come interpretare Approval, mint e burn
L’evento Approval segnala normalmente che un indirizzo ha autorizzato un altro indirizzo a utilizzare una certa quantità di token per suo conto. Non è un trasferimento. L’operazione modifica una regola di autorizzazione, spesso chiamata allowance.
Quando si legge un Approval, bisogna identificare almeno tre soggetti:
- il proprietario dei token;
- il soggetto autorizzato a spenderli, spesso un router o uno smart contract;
- la quantità autorizzata.
Un’approvazione può comparire nella stessa transazione di un trasferimento, per esempio quando un’applicazione chiede prima il permesso di usare un token e poi procede con un’altra operazione. In altri casi il contratto può registrare un’allowance molto ampia o un valore che non viene immediatamente utilizzato.
Il fatto che un’Approval sia visibile su Etherscan non significa che i token siano già stati spostati. Indica che è stata registrata un’autorizzazione. Il rischio, semmai, è che il contratto autorizzato possa utilizzare l’allowance secondo le regole previste dal token e dal protocollo.
Gli eventi di mint e burn possono avere nomi diversi a seconda del progetto. In alcuni token, la creazione di nuove unità appare come un evento Transfer con indirizzo di origine nullo o particolare; la distruzione può essere rappresentata con un indirizzo di destinazione nullo. Questa convenzione non deve essere applicata automaticamente a ogni contratto. Occorre controllare il codice, la documentazione del progetto o la struttura dell’evento.
Topics e Data: la differenza tra parametri indicizzati e non indicizzati
Quando un evento è mostrato in forma tecnica, Etherscan può presentare i campi Topics e Data. I topics contengono l’identificatore dell’evento e, normalmente, i parametri dichiarati come indicizzati nel codice dello smart contract. Sono organizzati in formato esadecimale e possono sembrare incomprensibili senza una decodifica.
Il primo topic identifica la firma dell’evento, cioè una rappresentazione crittografica del suo nome e dei relativi tipi di dati. Gli altri topics possono contenere indirizzi, identificativi o altri valori indicizzati. Il campo Data contiene invece i parametri non indicizzati, codificati secondo le regole ABI di Ethereum.
Quando Etherscan conosce l’ABI del contratto, converte questi valori in campi leggibili. Se l’ABI non è disponibile, verificata o compatibile con l’implementazione effettiva, l’utente può visualizzare soltanto dati grezzi. In quel caso non è prudente dedurre il significato dei numeri soltanto dalla loro posizione.
Gli indirizzi e i valori esadecimali possono inoltre richiedere conversioni. Un importo di token non deve essere interpretato come un numero intero di unità senza verificare i decimali definiti dal contratto. Per esempio, un token con una certa quantità di decimali rappresenta l’importo umano dividendo l’unità minima per il relativo fattore. Etherscan spesso esegue questa conversione nell’interfaccia, ma il dato grezzo resta la base tecnica.
Eventi, chiamate interne e stato della transazione non sono la stessa cosa
Un errore comune consiste nel considerare i log come una lista completa di tutte le operazioni avvenute. I log sono soltanto gli eventi emessi. Le internal transactions o tracce di esecuzione mostrano invece chiamate e trasferimenti generati dall’attività di uno smart contract, mentre lo stato della transazione indica se l’esecuzione è terminata con successo o con un errore.
Queste tre informazioni rispondono a domande diverse:
- Stato: la transazione è stata eseguita senza revert?
- Tracce o chiamate interne: quali passaggi e trasferimenti di valore sono stati generati dai contratti?
- Log: quali eventi hanno deciso di registrare gli smart contract?
Una transazione fallita può avere prodotto dati durante l’esecuzione simulata, ma gli effetti di stato vengono normalmente annullati. Per questo bisogna controllare prima lo status. Un evento mostrato in un contesto di errore non deve essere interpretato come prova di un risultato finale consolidato senza verifiche ulteriori.
Al contrario, una transazione riuscita può non avere log leggibili oppure può usare eventi personalizzati. L’assenza di un evento Transfer non dimostra da sola che non sia avvenuto alcun cambiamento: il contratto potrebbe usare una struttura diversa, omettere eventi o rendere la decodifica incompleta.
Un metodo pratico per analizzare una transazione
Per ridurre gli errori, si può seguire una sequenza ordinata:
- verificare che la rete sia quella corretta e che l’hash appartenga alla transazione analizzata;
- controllare lo stato, il mittente e il destinatario iniziale;
- identificare il contratto che ha emesso ciascun log;
- leggere gli eventi nell’ordine in cui compaiono;
- distinguere Transfer, Approval, eventi di swap, staking, prestito o liquidità;
- controllare simbolo, nome, decimali e indirizzo del token;
- confrontare i log con le tracce interne quando il percorso dei fondi non è chiaro;
- non considerare conclusiva una decodifica automatica se il contratto non è verificato o se i dati appaiono incoerenti.
In un’operazione DeFi, per esempio, il wallet può inviare un token a un contratto, il contratto può interagire con una pool e infine trasferire un altro token al wallet. La lettura corretta non consiste nel fermarsi alla prima riga, ma nel ricostruire la sequenza completa.
Rischi ed errori da evitare
Il primo errore è confondere l’indirizzo del contratto con quello di una persona o di un exchange. L’indirizzo che emette un evento può essere un token, un router, una pool o un contratto di gestione.
Il secondo è affidarsi soltanto al nome del token. I token possono avere nomi e simboli simili o identici. Per verificare l’identità dell’asset bisogna confrontare l’indirizzo del contratto con una fonte attendibile e con la rete corretta.
Il terzo è interpretare una Approval come un trasferimento già avvenuto. L’autorizzazione e la movimentazione dei token sono eventi diversi e possono avvenire in transazioni diverse.
Il quarto è considerare automaticamente autentica ogni informazione decodificata dall’explorer. Etherscan organizza i dati e, quando possibile, li rende leggibili, ma non sostituisce l’analisi del contratto né garantisce che un progetto sia sicuro. Un contratto verificato rende il codice più consultabile, non elimina i rischi di bug, amministrazione centralizzata o comportamento malevolo.
Infine, non bisogna usare una transazione ricevuta o un evento visualizzato su Etherscan come motivo per firmare una nuova operazione. L’explorer serve a osservare dati on-chain; non è una prova che un link, un token o una richiesta successiva siano affidabili.
Imparare a leggere i log permette di passare da una visione superficiale — “la transazione è riuscita” — a una ricostruzione più precisa: quale contratto ha agito, quali token sono stati coinvolti, quali autorizzazioni sono state registrate e quali eventi hanno accompagnato l’esecuzione. È uno strumento utile per controllare le proprie operazioni, ma va sempre usato insieme allo stato della transazione, alle tracce interne e all’identità verificata dei contratti.


