Conversor ETH ↔ Wei ↔ Gwei
Converte entre unidades do Ethereum (wei, gwei, ether etc.). Cálculo com BigInt, sem perda de precisão.
Conversor ETH ↔ Wei ↔ Gwei
1.01000.01000000.01000000000.01000000000000.01000000000000000.01000000000000000000Usa ethers.parseUnits / formatUnits (aritmética BigInt — sem perda de ponto flutuante).
Roda totalmente no seu navegador. Seus dados nunca saem do seu dispositivo.
What next?
How it works
Hierarquia de unidades
Ethereum (e EVM chains compatíveis) usa três unidades principais:
| Unidade | Valor em wei | Quando usar |
|---|---|---|
| wei | 1 | Unidade atômica, todos os cálculos internos do EVM |
| gwei | 1,000,000,000 (10^9) | Gas price |
| ether | 1,000,000,000,000,000,000 (10^18) | Display para humanos |
Outras unidades: szabo (10^12 wei), finney (10^15 wei), Kwei/Mwei (10^3, 10^6). Raramente usadas hoje — gwei e ether dominam.
Por que tantos zeros
Ether é a denominação humana — 0.001 ETH é uma quantia pequena de café (~$3). Mas o EVM trabalha em wei para evitar floats: 0.001 ETH = 1_000_000_000_000_000 wei (1 quadrilhão). Inteiros não têm imprecisão de ponto flutuante.
Gas price está em gwei porque essa é a escala natural — 1 gwei ≈ $0.0000037 (com ETH a $3700). Um swap simples custa ~150,000 gas units * 30 gwei = 0.0045 ETH = ~$17.
A armadilha do JavaScript
Number em JS é IEEE 754 double — 53 bits de precisão inteira. Acima de 2^53 = 9_007_199_254_740_992 você perde precisão:
1e18 + 1 === 1e18 // true em JS — perdeu o "+1"
Wei valores acima de ~9 ETH já entram nessa zona. Sempre use BigInt para wei:
const wei = BigInt('1000000000000000000') // 1 ETH em wei
ethers.parseUnits e ethers.formatUnits retornam BigInt e tratam string ↔ BigInt corretamente.
EIP-1559: base fee + priority fee
Desde a London hardfork (2021), gas tem duas componentes:
- base fee (gwei): definido pelo protocolo conforme demanda. Burned.
- priority fee (gwei): tip ao validator. Você escolhe.
maxFeePerGas = base fee + priority fee + buffer. Se você setar maxPriorityFeePerGas = 2 gwei e base fee = 30 gwei, paga ~32 gwei por unit.
Casos de uso
- Debugar tx receipt: receipt vem em wei; converte para ETH legível
- Calcular custo de gas:
gas_used * effective_gas_priceem wei → ETH → USD - Validar input do usuário: form pede ETH, você precisa em wei para a tx
- Exibir saldos com precisão completa (sem truncar) ou com precisão fixa (2 decimais)
Edge cases
- Notação científica: input
1e18é aceito mas pode confundir com perda de precisão. Prefira1000000000000000000ou useparseUnits('1', 'ether'). - Decimais em wei: wei é inteiro.
0.5 weinão existe. - Negativos: wei não pode ser negativo. Negativos costumam indicar erro lógico.
Bibliotecas
ethers.js (parseUnits, formatUnits). BigInt nativo do JS. Tudo client-side.
FAQ
Por que não posso usar Number para wei?
JavaScript Number perde precisão acima de 2^53 (~9 quadrilhões). 1 ETH = 10^18 wei, então qualquer wei acima de ~9 ETH já entra nessa zona. Sempre use BigInt ou strings.
Qual a diferença entre parseUnits e parseEther?
parseEther("1") = parseUnits("1", "ether") = parseUnits("1", 18) = BigInt("1000000000000000000"). Tudo equivalente. parseUnits é mais geral (suporta qualquer denominação de token, ex: USDC com 6 decimais).
Por que gas em gwei e não em ETH?
Escala natural. 30 gwei é um número humano (~$0.00011 a $3700/ETH). Em ETH seria 0.00000003 ETH — difícil de comparar visualmente. EIP-1559 ferramentas e wallets exibem em gwei por convenção.
Como converter entre tokens com decimais diferentes?
USDC = 6 decimais, ETH = 18. Para 100 USDC em "raw" units: parseUnits("100", 6) = 100_000_000n. Sempre cheque decimals() do contrato ERC20 antes de fazer cálculo.
Posso usar notação científica?
A ferramenta aceita 1e18, mas pode causar perda de precisão. Prefira strings decimais: "1000000000000000000" ou use parseEther("1").
Tudo client-side?
Sim. ethers.js no browser. Zero servidor. Funciona offline.
More web3 tools
- Verificador de endereços de carteira — Valida endereços de Ethereum (EIP-55), Bitcoin (legacy/segwit/bech32) e Solana.
- Ferramenta de frase mnemônica BIP-39 — Gere, valide e converta frases mnemônicas BIP-39 (12–24 palavras) — entropia, checksum e derivação de seed, apenas wordlist em inglês.