Fundamentals·5 min de leitura

wei, gwei, ether: acertando as unidades em produção

O bug mais comum em backends cripto é um erro de unidade — exibir wei como ether, ou pior, enviar assim. A correção é chata e absoluta: nunca use ponto flutuante para valores on-chain, e sempre saiba em que unidade um número está.

A escala

Ether tem 18 decimals. 1 ether = 10^9 gwei = 10^18 wei. Gwei (10^9 wei) é a unidade em que os preços de gas são cotados; wei é a unidade base em que todo valor de RPC é denominado. O equivalente do Bitcoin é o satoshi (10^-8 BTC), o do TRON é o sun (10^-6 TRX), o do TON é o nanoton (10^-9 TON). Toda chain tem uma unidade inteira base — trabalhe nela.

Por que floats quebram

Doubles IEEE-754 têm 53 bits de mantissa, cerca de 15–16 dígitos decimais significativos. Um valor em wei pode ter 19+ dígitos, então no momento em que você o parseia para um number de JavaScript você perde precisão — silenciosamente. O erro de arredondamento é minúsculo em termos relativos e catastrófico num ledger. Use BigInt nativo, ou uma biblioteca de big-decimal, de ponta a ponta.

Converta só nas bordas

Mantenha os valores como inteiros na unidade base em todo o seu sistema — armazenamento, aritmética, comparações. Converta para uma string decimal legível por humanos só na fronteira de exibição, e parseie a entrada do usuário de volta para a unidade base imediatamente na entrada. Se um float algum dia tocar um valor entre essas duas bordas, trate como bug.

1st Node Engineering

Perguntas frequentes

É seguro usar numbers de JavaScript para valores pequenos?

Não — trace a linha no tipo, não no tamanho. Assim que qualquer caminho de código usa floats para valores, um valor grande eventualmente vai fluir por ele. Use BigInt para todos os valores on-chain independentemente da magnitude.

Como exibo um valor em wei como ether sem uma biblioteca?

Divida por 10^18 usando matemática de inteiros/BigInt para a parte inteira e formate o resto como os dígitos fracionários — nunca via divisão de ponto flutuante. Nossas ferramentas de conversão de unidades fazem exatamente isso.

Relacionados

Recarregue, pegue a chave e publique.

Autoatendimento. Pague em cripto ou cartão. Medido por créditos: primitivas pesadas custam mais, as simples são baratas.

Obter chave de API