Ethereumwei, Gwei y ETH, convertidos con aritmética entera exacta

Conversor de Gwei

Escriba en cualquiera de los tres campos y los otros dos se actualizan. Cada conversión pasa por wei como BigInt, de modo que los 18 decimales sobreviven el ida y vuelta en lugar de perderse por la coma flotante.

Convertir
Un campo por unidad. El campo en el que escribe se mantiene exactamente como lo escribió.
Probar:
En wei
1000000000
Las tres unidades
La misma divisa, tres escalas, fijadas por el protocolo.
wei

La unidad más pequeña y la única con la que trabaja la EVM. Los saldos, los valores de transacción y los precios del gas son todos enteros en wei; no hay nada por debajo, así que a nivel de protocolo no hay redondeo.

Gwei

109 wei, también escrita como nanoether. Los precios del gas caen en este rango, que es la razón misma de que la unidad se use a diario: 20 Gwei se lee mejor que 20000000000 wei y que 0,00000002 ETH.

ETH

1018 wei. Lo que los usuarios ven en una wallet, y la unidad en la que casi ninguna interfaz calcula realmente.

Consulte el precio del gas en vivo desde una API

7 días de prueba, sin tarjeta de crédito, sin KYC.

Iniciar la prueba gratuita

Las tres unidades, y la aritmética entre ellas

Ethereum tiene una sola moneda y varios nombres para sus escalas. Dos de ellos importan en la práctica:

Unidad En wei En ETH También llamada
wei 1 0,000000000000000001
Gwei 1.000.000.000 0,000000001 nanoether, shannon
ETH 1.000.000.000.000.000.000 1 ether

Convertir es un desplazamiento decimal, no una multiplicación que necesite una librería. De Gwei a ETH la coma se mueve nueve posiciones a la izquierda, de ETH a wei se mueve dieciocho posiciones a la derecha. Hacerlo a mano es de donde vienen los errores: nueve ceros y dieciocho ceros se parecen a simple vista, y un error de tres órdenes de magnitud convierte un precio de gas de 20 Gwei en 20 megawei.

Por qué existe el Gwei

La EVM no tiene tipo fraccionario. Los saldos, los importes de las transacciones y los precios de gas son todos enteros sin signo en wei, porque los enteros son lo único que el consenso puede acordar con exactitud. Esa decisión es correcta y hace que los precios de gas sean ilegibles: un precio normal es un número de diez u once dígitos en wei, y una fracción de cinco decimales en ETH. Ninguna de las dos escalas encaja con el número.

El Gwei se sitúa entre ambos, en 109 wei, y ahí los precios de gas caen en una o dos cifras. Esa es toda la razón de que la unidad esté en uso diario. No es un token aparte, ni una denominación de Layer 2, solo una escala que resulta coincidir con el tamaño de los números que la gente cita. Los nombres shannon y nanoether se refieren a lo mismo y rara vez aparecen fuera de las tablas de unidades.

La misma lógica funciona a la inversa para los saldos. Nadie cita una wallet en wei, y nadie cita un precio de gas en ETH. Cada escala se usa donde sus números tienen una cantidad de dígitos legible, por lo que una interfaz que toca ambas no deja de convertir entre ellas.

Por qué este conversor usa BigInt

Un número de JavaScript es un double, exacto para enteros solo hasta 253 − 1, es decir, 9.007.199.254.740.991. Eso son aproximadamente 9 × 1015, por debajo de los 1018 wei que hay en un solo ETH. Pasado ese límite los resultados son incorrectos en silencio en lugar de ser rechazados:

1.1 * 1e18            // 1100000000000000100  — desviado en 100 wei
Number("1234567890123456789")
                      // 1234567890123456800  — se pierden los dos últimos dígitos
0.1 + 0.2             // 0.30000000000000004

Ninguno de esos casos lanza un error. Devuelven un número de aspecto verosímil con los dígitos bajos sustituidos por lo que sea que dio la representación binaria. En un conversor eso es malo; en código que construye el importe de una transacción es un fallo que se descubre en producción, cuando una transferencia mueve un importe ligeramente distinto del que se mostró.

La solución es no dejar nunca que un valor en wei se convierta en un float. Esta página analiza su entrada como una cadena decimal, desplaza la coma mediante manipulación de cadenas, y guarda el resultado como un BigInt. Escribir 18 decimales arbitrarios en el campo ETH devuelve exactamente esos dígitos en el campo wei. El único lugar donde se pierden dígitos es cuando introduce más decimales de los que tiene la unidad, y la página lo indica en lugar de redondear en silencio.

La misma disciplina se aplica en su propio código. ethers tiene parseEther y formatUnits, viem tiene parseEther y formatGwei, y ambas devuelven valores BigInt por la misma razón. Un value / 1e18 hecho a mano funciona bien justo hasta el importe en el que deja de hacerlo.

El coste de gas en las tres unidades

El gas es donde la conversión realmente se usa, así que ayuda ver un cálculo en las tres escalas. Una transferencia simple de ETH cuesta un fijo de 21.000 gas. A un precio de gas de 20 Gwei:

21000 gas × 20 Gwei  = 420.000 Gwei
                     = 420.000.000.000.000 wei
                     = 0,00042 ETH

El importe de gas depende de qué hace la transacción; el precio del gas depende de la demanda de espacio de bloque en ese momento. Desde EIP-1559 el precio se divide en una comisión base, que se quema, y una comisión de prioridad, que va al proponente del bloque. Ambas se cotizan por gas, y ambas son valores en wei por debajo, por lo que los parámetros de transacción de Chaingateway gasprice, maxFeePerGas y maxPriorityFeePerGas toman como valor de ejemplo 1000000000 en lugar de 1. Eso es un Gwei escrito en wei.

Vigile la escala al leer un precio de vuelta: GET /api/v2/ethereum/gasprice devuelve un único campo gasPrice cuyo valor de ejemplo en la referencia es 12.28, una cifra a escala Gwei y no un entero en wei. Devolverlo directamente a una transacción como gasprice pediría 12 wei por gas. Convierta primero, y luego multiplique por el gas que usa su transacción.

El resto de los endpoints de Ethereum, incluyendo las transferencias ERC-20 y los webhooks de transacciones, se describen en la página de la API de Ethereum. Otras calculadoras relacionadas están en Herramientas.

Preguntas frecuentes

¿Cuántos wei hay en un ETH?

10^18, es decir, 1000000000000000000 wei. El exponente lo fija el protocolo y nunca ha cambiado.

¿Cuántos wei hay en un Gwei?

10^9, es decir, 1000000000 wei. Un ETH contiene 10^9 Gwei, así que Gwei está exactamente a mitad de camino entre wei y ETH en una escala logarítmica.

¿Cómo convierto wei a ETH a mano?

Mueva la coma decimal dieciocho posiciones a la izquierda, rellenando con ceros si el número tiene menos de diecinueve dígitos. 420000000000000 wei se convierte en 0,00042 ETH. De Gwei a ETH es la misma operación con nueve posiciones.

¿Es Gwei lo mismo que nanoether?

Sí. Gwei, nanoether y shannon son tres nombres para 10^9 wei, que equivale a 10^-9 ETH. Gwei es el nombre que se ha popularizado, porque los precios del gas suelen expresarse en esa unidad.

¿Por qué se usa Gwei para los precios del gas en lugar de ETH?

Por el número de dígitos. Un precio de gas de 20 Gwei son 20000000000 wei o 0,00000002 ETH, y ninguna de las dos cifras se lee de un vistazo. Gwei reduce los precios de gas habituales a uno o dos dígitos.

¿Puedo convertir wei a ETH con un número normal de JavaScript?

No de forma fiable. Un double solo es exacto para enteros hasta 9007199254740991, muy por debajo de los 10^18 wei que tiene un ETH, así que los valores mayores pierden sus últimos dígitos sin que se produzca ningún error. 1.1 * 1e18 devuelve 1100000000000000100, cien wei de más. Use BigInt, o una librería que devuelva BigInt.

¿Cuánto cuesta una transacción en ETH si el precio del gas está en Gwei?

Multiplique el gas consumido por el precio del gas, y luego convierta. Una transferencia simple usa 21000 de gas; a 20 Gwei son 420000 Gwei, es decir, 0,00042 ETH. Las llamadas a contratos usan más gas, y la cifra de 21000 es el mínimo, no un valor típico.

¿Este conversor redondea?

No. Cada valor se analiza como una cadena decimal y se guarda como BigInt en wei, así que los 18 decimales se conservan. El único caso en el que se descartan dígitos es una entrada con más decimales de los que admite la unidad, como una fracción en el campo de wei, y la página informa de ello en lugar de redondear en silencio.