Glossary
Wei
L’unità atomica di Ethereum
By Buğra SözeriPublished Updated
Wei è la più piccola unità indivisibile di Ether. 1 ETH = 10¹⁸ Wei = 1.000.000.000.000.000.000 Wei. Prende il nome da Wei Dai, il crittografo la cui proposta b-money del 1998 è uno degli antenati concettuali di Bitcoin e del più ampio ecosistema degli smart contract.
Gli smart contract su Ethereum eseguono tutta l’aritmetica del saldo in importi interi in Wei. Non c’è virgola mobile on-chain — ogni campo valore, calcolo del gas e saldo è un valore Wei intero senza segno a 256 bit. ETH e Gwei sono puramente etichette rivolte agli esseri umani; la EVM conosce solo Wei.
In JavaScript questo è importante perché Number.MAX_SAFE_INTEGER è circa 9 × 10¹⁵. Un saldo di 9 ETH è circa 9 × 10¹⁸ Wei — tre ordini di grandezza oltre il limite di precisione di Number. Le librerie di wallet in produzione usano BigInt per gli importi in Wei. Il nostro convertitore Wei / Gwei / ETH usa BigInt in tutta la sua implementazione così le conversioni sono eseguite senza perdita di precisione.
Perché proprio 18 decimali? I progettisti di Ethereum volevano una risoluzione frazionaria abbastanza grande che anche a prezzi del gas estremi il costo di una transazione sia comodamente esprimibile senza notazione scientifica, e abbastanza grande che la commissione pratica più piccola (attualmente qualche migliaio di Wei) sia ancora un numero intero. 18 decimali si trovano comodamente al di sotto del limite di 2²⁵⁶ — un campo valore sulla catena Ethereum può rappresentare fino a ~1,158 × 10⁷⁷ Wei, più Ether di quanti l’universo potrebbe plausibilmente contenere. I token ERC-20 ereditano la stessa convenzione dei 18 decimali per default per coerenza con il livello base, anche se i token sono liberi di scegliere i propri decimali (USDC usa 6, WBTC usa 8).
Importi pratici in Wei che vedrai in un wallet: una tipica transazione sulla mainnet a 30 Gwei di prezzo del gas con un trasferimento semplice da 21.000 gas costa 30 × 10⁹ × 21.000 = 6,3 × 10¹⁴ Wei = 0,00063 ETH. Un’interazione complessa con smart contract (swap su Uniswap, mint di NFT) potrebbe bruciare 200.000+ gas — dell’ordine di 10¹⁶ Wei. Leggere una transazione grezza in Etherscan mostra il campo valore come stringa decimale Wei per esattezza; il livello UI sopra lo renderizza come ETH con un toggle dell’unità. Correlato: Gwei, BigInt. Riferimento: Ethereum Yellow Paper.
Esempio pratico
Vuoi inviare 0,025 ETH da uno script. Converti in Wei: 0,025 × 10¹⁸ = 25.000.000.000.000.000 Wei — un intero a 17 cifre. JavaScript ingenuo: 0.025 * 1e18 valuta a 25000000000000000 ma memorizzarlo come Number normale perde precisione nell’aritmetica intermedia (prova 0.1 * 1e18 + 0.2 * 1e18 — ottieni 299999999999999970, sbagliato di 30 Wei). Il pattern corretto usa BigInt: ethers.parseEther("0.025") restituisce 25000000000000000n (un BigInt) che l’aritmetica preserva esattamente. Ora invia: a 25 Gwei di prezzo del gas per un trasferimento da 21.000 gas, commissione = 25n * 10n**9n * 21000n = 525000000000000n Wei = 0,000525 ETH. Totale che lascia il wallet: 25000000000000000n + 525000000000000n = 25525000000000000n Wei = 0,025525 ETH. Ogni passaggio rimane come Wei intero fino alla visualizzazione.
Quando e perché è importante
Tre classi di bug si riconducono alla gestione errata di Wei. Primo: aritmetica in virgola mobile sui valori ETH che arrotonda silenziosamente e causa che “invia 1,0 ETH” lasci 23 Wei bloccati nel wallet, rompendo successivi controlli del saldo. Secondo: confusione di unità (invio di Gwei dove era atteso Wei, sbagliato di 10⁹) — la transazione imbarazzante canonica è un trasferimento da $4.000 che ha pagato $4.000.000 di commissioni perché uno script ha moltiplicato il prezzo del gas per 10⁹ due volte. Terzo: copiare-incollare un campo valore esadecimale da una risposta RPC e analizzarlo come decimale — un valore di transazione di 0x4563918244F40000 è 5.000.000.000.000.000.000 Wei = 5 ETH, non 4.563.918.244.940.000 di qualsiasi cosa. Le regole difensive: mantenere tutti i valori come BigInt o BN.js ovunque vivano nel codice, etichettare ogni variabile con la sua unità (importoWei, non importo), e usare gli helper di ethers/viem (parseEther, formatEther) solo al confine della visualizzazione umana. Riferimento: ethers.js — Informazioni sulle unità.
Prova il calcolatore
Converti tra wei, gwei e ETH con piena precisione a 18 decimali.
Apri il convertitore wei / gwei / ETH →Frequently asked questions
- Che cos’è un wei?
- Un wei è la più piccola unità indivisibile di Ether (ETH), la criptovaluta nativa della rete Ethereum. Un ETH equivale a 10^18 wei -- cioè 1.000.000.000.000.000.000 wei.
- Come viene usato il wei in pratica?
- I prezzi del gas e i saldi dei contratti intelligenti vengono calcolati in wei a livello di protocollo. Le interfacce rivolte all’utente mostrano i valori in gwei (10^9 wei) per i prezzi del gas o in ETH per i saldi dei conti. Una tipica base fee potrebbe essere 10 gwei = 10.000.000.000 wei.
- Qual è la differenza tra wei, gwei e ETH?
- Wei è l’unità base (1), gwei è 10^9 wei e viene utilizzato per i prezzi del gas (es. 20 gwei per unità di gas), e ETH è 10^18 wei, la denominazione rivolta agli esseri umani. La gerarchia rispecchia la relazione tra satoshi e BTC ma con molti più decimali.
Related
Published May 14, 2026 · Last reviewed May 31, 2026