Vai al contenuto

Perché un wallet può mostrare un saldo di token errato?

Scopri perché i saldi divergono tra wallet e indicizzatori, come incidono blocco e contabilità del token e come verificare in sicurezza lo stato on-chain.

Aggiornato

Solo a scopo educativo; non è una consulenza d’investimento. Gli asset digitali e le transazioni on-chain possono causare perdite irreversibili.

Risposta diretta

Il saldo del wallet è una vista derivata, non l’autorità sulla proprietà. Combina letture RPC, indice degli eventi, metadati, prezzi, filtri antispam e cache. Ogni livello può essere obsoleto, puntare a rete o contratto errati o interpretare male il token. Un’assenza non prova la perdita; un numero visibile non garantisce trasferibilità, rimborso o valore.

Per un ERC-20 comune, il punto di partenza è balanceOf per l’account esatto, a un blocco specifico della catena corretta. Esprime solo unità secondo il contratto. Token rebase, quote di vault, asset wrapped e posizioni di protocollo possono richiedere un’ulteriore conversione.

Come funziona

La visualizzazione combina quattro percorsi:

  • Stato del contratto: il nodo RPC esegue balanceOf con eth_call sul blocco scelto.
  • Indice eventi: il servizio scansiona i log Transfer e aggiorna cronologia e saldi in cache.
  • Metadati e valutazione: decimals, simbolo, liste, tassi e prezzi convertono l’intero grezzo.
  • Politica dell’interfaccia: il wallet può nascondere spam, unire account, essere in ritardo o mantenere la cache.

ERC-20 definisce balanceOf e richiede Transfer nei trasferimenti standard. Un database a eventi può comunque omettere o duplicare log, partire tardi, gestire male una riorganizzazione o ignorare contabilità particolari. Gli eventi provano variazioni, non sostituiscono lo stato corrente. Anche decimals errato altera la visualizzazione.

Il blocco conta: JSON-RPC accetta latest, safe e finalized, mentre i provider possono vedere head diversi. EIP-1898 fissa letture correlate allo stesso hash e può richiedere un blocco canonico. Senza riferimento comune, due letture valide possono descrivere stati diversi.

Segui questa sequenza:

  1. Conferma rete e chainId; i saldi di origine e destinazione di un bridge sono registri separati.
  2. Ottieni il contratto da fonti affidabili o registri verificati, mai dal solo simbolo.
  3. Verifica account, standard e tipo: token base, wrapped, quota vault o ricevuta.
  4. Interroga balanceOf con due RPC indipendenti allo stesso numero o hash di blocco; separa intero grezzo e decimals.
  5. Controlla ricevuta, stato, contratto, log e blocco canonico; confronta prima e dopo su blocchi espliciti.
  6. Per rebase o quote usa conversione e rimborso documentati. In ERC-4626, balanceOf indica quote e convertToAssets stima gli asset, non necessariamente il rimborso esatto.

Esempio

L’explorer conferma il trasferimento a Lina, ma il wallet mostra zero. Due RPC restituiscono lo stesso balanceOf positivo sul medesimo blocco finalizzato; ricevuta e log sono canonici e del contratto giusto. È probabile un ritardo di indice, filtro o cache: importare il contratto verificato o attendere è meglio che inviare di nuovo. Un altro balanceOf sul contratto verificato distingue i dati vecchi da un asset reale.

Al contrario, un simbolo noto può mostrare saldo mentre balanceOf del contratto verificato vale zero: contratto omonimo o vecchi dati di un’altra rete. In un vault, le quote possono essere corrette ma il valore no senza conversione corrente.

Rischi e controlli

  • Catena o indirizzo errati: verifica chainId, account e contratto completi prima di correggere.
  • RPC obsoleto: confronta provider su un blocco esplicito; non mescolare latest di momenti diversi.
  • Riorganizzazione: considera provvisori i blocchi recenti e ricontrolla la ricevuta canonica.
  • Lacune dell’indice: riparti da un blocco noto, riconcilia log e stato e annulla blocchi orfani.
  • Contabilità non standard: non sommare Transfer per rebase, vault o ricevute senza documentazione.
  • Errore di metadati o prezzo: separa unità, quantità e valore; il prezzo non cambia il saldo, decimals cambia la visualizzazione.
  • Token o interfaccia malevoli: visualizzare non richiede approvazioni o firme; rifiuta link e transazioni di “aggiornamento”.

Se il disaccordo continua, ferma i trasferimenti e conserva rete, account, contratto, numero e hash del blocco, risposte RPC e hash della transazione. Verifica supporto del blocco, upgrade, pausa, rebase, migrazione o finalizzazione del bridge. Usa canali pubblici senza condividere seed phrase o chiave privata.

Un saldo corretto non garantisce l’uscita. Verifica restrizioni, rimborso, liquidità, commissioni e permessi. Fai un piccolo test solo dopo la verifica; più gas o slippage non ripara l’indice.

Errori comuni

  • “Lo schermo del wallet è la blockchain.” È una vista composta da dati on-chain e off-chain.
  • “I log Transfer sommano sempre il saldo.” Possono essere indicizzati male e alcuni token richiedono conversioni.
  • “Più conferme aggiornano il wallet.” Riducono l’incertezza, ma non forzano cache o indicizzatore.
  • “Un saldo positivo si può vendere.” Regole, pause, limiti, liquidità o contratti malevoli possono impedirlo.
  • “Devo firmare per vedere il saldo.” Una lettura pubblica non richiede approvazione, firma o seed phrase.

Argomenti correlati

Fonti

Navigazione

Cerca nella wiki...