Saltar al contenido

Gas de desplegar un contrato en Ethereum: initcode, bytes y calldata

Esta calculadora te dice cuánto gas cuesta desplegar un contrato en Ethereum. Escribe el tamaño del initcode, cuántos bytes son cero, el tamaño del código desplegado y el precio del gas. Verás el gas, los ether y el dinero.

Sirve en cualquier país · Gratis y sin registro · Tema: Criptomonedas, Minería y redes de cripto
Tus datos
bytes

Los datos de la transacción de creación. Máximo 49.152 bytes.

bytes

Cada byte cero cuesta 4 de gas y cada uno distinto de cero, 16.

bytes

Lo que queda guardado en la cadena. Máximo 24.576 bytes.

gwei

Tarifa base más propina. El 10 es un ejemplo.

Opciones avanzadas
$

Escríbelo en tu moneda. El 3.000 es solo un ejemplo.

de gas

Estimación tuya: lo que gaste el constructor al ejecutarse (almacenamiento, eventos…).

de gas
de gas
Gas total del despliegue 1.137.376 137.376 de entrada + 1.000.000 de depósito
Coste en ether 0,0114 11.373.760 gwei en total
Coste en dinero $34,12

Desplegar cuesta unos 1.137.376 de gas, es decir, $34,12. De cada 100 de gas, 87,9 son del depósito del código.

Gas intrínseco (entrada)
137.376
Gas de calldata
84.000
Gas del initcode (188 palabras)
376
Depósito del código
1.000.000
Parte del depósito en el total
87,9 %

Desglose del gas

Concepto Gas
Gas fijo de transacción 21.000
Gas extra por crear contrato 32.000
Calldata (1.000 bytes cero a 4; 5.000 bytes a 16) 84.000
Initcode (2 por palabra de 32 bytes) 376
Depósito del código (200 por byte) 1.000.000
Ejecución del constructor 0
Ajuste por el suelo de calldata (EIP-7623) 0
Total 1.137.376
Cómo se calcula y qué tiene en cuenta
  • La palabra del initcode son 32 bytes y se redondea hacia arriba.
  • EIP-7623 fija un suelo: 21.000 + 10 de gas por cada unidad de calldata (1 por byte cero, 4 por el resto). Solo manda si el código desplegado es muy pequeño frente al initcode; entonces la tabla muestra el ajuste.
  • El gas del constructor es una estimación tuya: depende del código. El precio del gas cambia a cada bloque.
  • Es una estimación educativa: no envía ni firma transacciones.
¿Quieres que añadamos algo a esta calculadora?

Fórmula estándar, sin datos de ningún país · Cómo lo calculamos

Gas de desplegar un contrato en Ethereum: initcode, bytes y calldata · calculadora gratis de Skilio

En resumen

  • Desplegar un contrato con 6.000 bytes de initcode (1.000 a cero) y 5.000 bytes de código cuesta 1.137.376 de gas.
  • De ese gas, 1.000.000 es el depósito del código (200 por byte) y 137.376 es la entrada de la transacción.
  • A 10 gwei son 0,0114 ether, unos 34,12 con el ether a 3.000.
  • El initcode no puede pasar de 49.152 bytes ni el código desplegado de 24.576.

¿Cuánto gas cuesta desplegar un contrato en Ethereum?

Desplegar un contrato es enviar una transacción de creación. Su coste en gas es la suma de la entrada de la transacción, el depósito del código que queda guardado y lo que gaste el constructor al ejecutarse. Con los valores de ejemplo salen 1.137.376 de gas.

El gas se paga en gwei por unidad. Cuanto más pesa el contrato, más gas cuesta, sobre todo por el depósito del código.

¿Qué se paga al desplegar?

  • Gas fijo: 21.000 por cualquier transacción.
  • Creación: 32.000 más por crear un contrato.
  • Calldata: el initcode viaja como datos de la transacción. Cada byte cero cuesta 4 de gas y cada byte distinto de cero, 16.
  • Initcode: 2 de gas por cada palabra de 32 bytes, redondeando hacia arriba (EIP-3860).
  • Depósito del código: 200 de gas por cada byte del código desplegado.
  • Constructor: el gas que gaste al ejecutarse. Depende del código y lo escribes tú.
  • Suelo de calldata (EIP-7623): el total nunca baja de 21.000 + 10 de gas por cada unidad de calldata (1 por byte cero, 4 por byte distinto de cero). Solo se nota si el código desplegado es muy pequeño frente al initcode.

Fórmula

calldata    = 4 × bytes cero + 16 × bytes no cero
initcode    = 2 × palabras de 32 bytes (hacia arriba)
entrada     = 21.000 + 32.000 + calldata + initcode
depósito    = 200 × bytes del código desplegado
gas total   = el mayor entre (entrada + depósito + constructor)
              y (21.000 + 10 × (bytes cero + 4 × bytes no cero))
ether       = gas total × gwei ÷ 1.000.000.000

¿Cómo usar la calculadora?

  1. Escribe el tamaño del initcode en bytes.
  2. Indica cuántos de esos bytes son cero.
  3. Escribe el tamaño del código desplegado.
  4. Pon el precio del gas en gwei y el precio del ether.

En opciones avanzadas puedes añadir el gas del constructor y cambiar el gas fijo y el de creación.

Ejemplo con los valores por defecto

Initcode de 6.000 bytes (1.000 a cero), código de 5.000 bytes, 10 gwei y ether a 3.000:

ConceptoGas
Gas fijo y de creación (21.000 + 32.000)53.000
Calldata (1.000 × 4 + 5.000 × 16)84.000
Initcode (188 palabras × 2)376
Entrada de la transacción137.376
Depósito (5.000 × 200)1.000.000
Total1.137.376

El total son 0,0114 ether: 1.137.376 × 10 ÷ 1.000.000.000. Con el ether a 3.000, unos 34,12. De cada 100 de gas, 87,9 van al depósito del código.

Límites del tamaño

  • Initcode: máximo 49.152 bytes, el doble del límite de código. Si lo supera, la transacción no es válida.
  • Código desplegado: máximo 24.576 bytes.

En el extremo, con 49.152 bytes de initcode sin ceros y 24.576 de código, el gas es de 5.757.704. A 10 gwei son 0,0576 ether. Si ese mismo initcode desplegara un código vacío, mandaría el suelo de EIP-7623: 21.000 + 10 × 196.608 = 1.987.080 de gas, en lugar de los 842.504 de la suma normal.

Errores comunes

  • Olvidar el depósito: es la mayor parte del coste. Reducir el tamaño del código ahorra más que ahorrar ceros.
  • Contar mal las palabras: 33 bytes ya son 2 palabras.
  • Fijar el gas del constructor a cero: si guarda datos, su coste se suma y puede ser grande.
  • Tomar el precio del gas como fijo: cambia a cada bloque.
  • Ignorar el suelo de calldata: con mucho initcode y casi nada de código, el total sube hasta ese suelo y no basta con sumar las partes.

Las fuentes son EIP-3860 y EIP-7623. Es una estimación educativa: no envía ni firma transacciones.

Preguntas frecuentes

¿Cuánto cuesta desplegar un contrato pequeño?

Con 1 byte de initcode y sin código, 53.018 de gas. Un contrato real pesa mucho más y su coste lo domina el depósito del código. Piensa en cuántas funciones necesitas: cada byte de código desplegado suma 200 de gas, así que un contrato con pocas funciones sale mucho más barato.

¿Por qué un byte cero cuesta menos?

Porque el protocolo cobra 4 de gas por un byte cero y 16 por uno distinto de cero. Por eso el initcode con muchos ceros sale más barato.

¿Qué pasa si el initcode pasa de 49.152 bytes?

La transacción de creación no es válida. Tendrías que reducir el initcode o repartir el código en varios contratos.

¿El gas del constructor está incluido?

Solo si lo escribes en opciones avanzadas. Por defecto es 0 porque depende del código de cada contrato.

¿Dónde veo el precio del gas real?

En tu billetera o en un explorador de bloques. El 10 gwei de la calculadora es solo un ejemplo.

Cómo lo verificamos

Las fórmulas de esta calculadora se comprueban con pruebas automáticas, y cada cálculo ha pasado una revisión independiente: se rehízo por separado con otro código y se compararon las cifras. Cuando un dato depende de una ley o de un organismo público, se contrasta en su fuente oficial. La fórmula está en su apartado. Más detalles en cómo trabajamos, cómo calculamos: metodología y fuentes y quiénes somos y cómo hacemos las calculadoras.

Otras calculadoras que te pueden interesar

En este tema