Glossary
Wei
A unidade atômica do Ethereum
By Buğra SözeriPublished Updated
Wei é a menor unidade indivisível do Ether. 1 ETH = 10¹⁸ Wei = 1.000.000.000.000.000.000 Wei. Nomeado em homenagem a Wei Dai, o criptógrafo cuja proposta b-money de 1998 é um dos ancestrais conceituais do Bitcoin e do ecossistema mais amplo de contratos inteligentes.
Os contratos inteligentes no Ethereum realizam toda a aritmética de saldo em valores inteiros de Wei. Não há ponto flutuante on-chain — cada campo de valor, cálculo de gas e saldo é um valor Wei inteiro sem sinal de 256 bits. ETH e Gwei são puramente rótulos voltados ao ser humano; a EVM conhece apenas Wei.
Em JavaScript isso importa porque Number.MAX_SAFE_INTEGER é aproximadamente 9 × 10¹⁵. Um saldo de 9 ETH é aproximadamente 9 × 10¹⁸ Wei — três ordens de magnitude além do piso de precisão do Number. As bibliotecas de carteiras de produção usam BigInt para valores em Wei. Nosso conversor Wei / Gwei / ETH usa BigInt em todo o processo para que as conversões façam a viagem de ida e volta sem perda de precisão.
Por que especificamente 18 casas decimais? Os designers do Ethereum queriam uma resolução fracionária grande o suficiente para que mesmo em preços de gas extremos, o custo de uma transação seja confortavelmente expresso sem notação científica, e grande o suficiente para que a menor taxa prática (atualmente alguns milhares de Wei) ainda seja um número inteiro. 18 casas decimais também fica confortavelmente abaixo do teto de 2²⁵⁶ — um campo de valor na cadeia Ethereum pode representar até ~1,158 × 10⁷⁷ Wei, mais Ether do que o universo poderia plausivelmente conter. Os tokens ERC-20 herdam a mesma convenção de 18 casas decimais por padrão para consistência com a camada base, embora os tokens sejam livres para escolher suas próprias casas decimais (USDC usa 6, WBTC usa 8).
Quantidades práticas de Wei que você verá em uma carteira: uma transação típica na mainnet a 30 Gwei de preço de gas com uma transferência simples de 21.000 gas custa 30 × 10⁹ × 21.000 = 6,3 × 10¹⁴ Wei = 0,00063 ETH. Uma interação complexa com contrato inteligente (swap no Uniswap, mint de NFT) pode consumir 200.000+ gas — ordem de 10¹⁶ Wei. Ler uma transação bruta no Etherscan mostra o campo de valor como uma string decimal Wei para exatidão; a camada de UI acima renderiza como ETH com um toggle de unidade. Relacionado: Gwei, BigInt. Referência: Ethereum Yellow Paper.
Exemplo prático
Você quer enviar 0,025 ETH a partir de um script. Converta para Wei: 0,025 × 10¹⁸ = 25.000.000.000.000.000 Wei — um inteiro de 17 dígitos. JavaScript ingênuo: 0.025 * 1e18 resulta em 25000000000000000, mas armazená-lo como um Number regular perde precisão na aritmética intermediária (tente 0.1 * 1e18 + 0.2 * 1e18 — você obtém 299999999999999970, com erro de 30 Wei). O padrão correto usa BigInt: ethers.parseEther("0.025") retorna 25000000000000000n (um BigInt) que a aritmética preserva exatamente. Agora envie: a 25 Gwei de preço de gas para uma transferência de 21.000 gas, taxa = 25n * 10n**9n * 21000n = 525000000000000n Wei = 0,000525 ETH. Total saindo da carteira: 25000000000000000n + 525000000000000n = 25525000000000000n Wei = 0,025525 ETH. Cada etapa permanece como inteiro Wei até a exibição.
Quando e por que isso importa
Três classes de bugs rastreiam até o manuseio incorreto de Wei. Primeiro: aritmética de ponto flutuante em valores ETH que arredonda silenciosamente e faz com que “enviar 1,0 ETH” deixe 23 Wei presos na carteira, quebrando verificações de saldo posteriores. Segundo: confusão de unidades (enviar Gwei onde Wei era esperado, com erro de 10⁹) — a transação embaraçosa canônica é uma transferência de $4.000 que pagou $4.000.000 em taxas porque um script multiplicou o preço do gas por 10⁹ duas vezes. Terceiro: copiar e colar um campo de valor hex de uma resposta RPC e analisá-lo como decimal — um valor de transação de 0x4563918244F40000 é 5.000.000.000.000.000.000 Wei = 5 ETH, não 4.563.918.244.940.000 de qualquer coisa. As regras defensivas: mantenha todos os valores como BigInt ou BN.js onde quer que vivam no código, rotule cada variável com sua unidade (amountWei, não amount), e use os helpers de ethers/viem (parseEther, formatEther) apenas no limite de exibição humana. Referência: ethers.js — Sobre unidades.
Experimente a calculadora
Converta entre wei, gwei e ETH com precisão total de 18 casas decimais.
Abrir o conversor wei / gwei / ETH →Frequently asked questions
- O que é um wei?
- Um wei é a menor unidade indivisível do Ether (ETH), a criptomoeda nativa da rede Ethereum. Um ETH equivale a 10^18 wei — ou seja, 1.000.000.000.000.000.000 wei.
- Como o wei é usado na prática?
- Preços de gas e saldos de contratos inteligentes são calculados em wei no nível do protocolo. Interfaces voltadas ao usuário exibem valores em gwei (10^9 wei) para preços de gas ou ETH para saldos de conta. Uma taxa base típica pode ser 10 gwei = 10.000.000.000 wei.
- Qual é a diferença entre wei, gwei e ETH?
- Wei é a unidade base (1), gwei é 10^9 wei e é usado para preços de gas (por exemplo, 20 gwei por unidade de gas), e ETH é 10^18 wei, a denominação voltada ao ser humano. A hierarquia espelha a relação entre satoshis e BTC, mas com muito mais casas decimais.
Related
Published May 14, 2026 · Last reviewed May 31, 2026