Skip to content

Glossary

Wei

L’unità atomica di Ethereum

By Published 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