Más juegos en WuGames.ioPatrocinadoDescubre juegos de navegador gratis — juega al instante, sin descargas ni registro.Jugar

Codificador / Decodificador ABI

Codifica llamadas a función en calldata o decodifica input data de transacciones Ethereum, Polygon, BSC y cualquier EVM. Soporta tuples, arrays, structs.

Formato: nombreFunción(tipo1,tipo2,...)

¿Qué es el Codificador / Decodificador ABI?

El Codificador/Decodificador ABI (Application Binary Interface) es una herramienta gratuita para codificar y decodificar datos de llamadas de funciones de contratos inteligentes de Ethereum. Convierte firmas de funciones y parámetros legibles en calldata hexadecimal que se puede enviar a contratos inteligentes, y viceversa.

Esta herramienta es esencial para desarrolladores de blockchain que trabajan con contratos inteligentes, depuran transacciones o construyen dApps en Ethereum y cadenas compatibles con EVM.

¿Qué es ABI en Ethereum?

ABI (Application Binary Interface) es una especificación que define cómo interactuar con contratos inteligentes de Ethereum. Describe las funciones disponibles en un contrato, sus parámetros y tipos de retorno. El codificador ABI convierte llamadas de funciones en bytecode que la EVM puede ejecutar.

¿Qué es calldata?

Calldata son los datos codificados enviados con una transacción a un contrato inteligente. Consiste en un selector de función de 4 bytes (primeros 8 caracteres hex después de 0x) seguido de parámetros codificados en ABI. Por ejemplo, llamar a transfer(address,uint256) genera calldata como 0xa9059cbb000000...

¿Cómo codifico una llamada de función?

Ingrese la firma de la función (ej., transfer(address,uint256)) y los parámetros como un array JSON. La herramienta generará el calldata completo incluyendo el selector de función y los parámetros codificados. Este calldata se puede usar en transacciones web3 o para depuración.

¿Cómo decodifico datos de entrada de transacción?

Pegue los datos de entrada de la transacción (calldata) de cualquier transacción EVM. Si conoce la firma de la función, proporciónela para decodificación detallada de parámetros. De lo contrario, la herramienta mostrará el selector de función y datos en bruto. Esto es útil para analizar transacciones en exploradores de bloques.

¿Qué blockchains están soportadas?

Esta herramienta funciona con todas las blockchains compatibles con EVM incluyendo Ethereum, BSC, Polygon, Arbitrum, Optimism, Avalanche y cualquier otra cadena que use la Máquina Virtual de Ethereum y siga los estándares de codificación ABI.

Codificador / Decodificador ABI — Codifica llamadas a función en calldata o decodifica input data de transacciones Ethereum, Polygon, BSC y cualquier EVM.
Codificador / Decodificador ABI

¿Cómo se calcula el selector de 4 bytes desde la firma?

Toma la firma como transfer(address,uint256), aplica Keccak-256 (NO SHA-256 normal) y coge los 4 primeros bytes. La firma debe NO tener espacios y usar nombres canónicos: address, uint256 no uint, bytes32 no bytes. transfer(address,uint256) genera 0xa9059cbb...

¿Cómo maneja ABI los tipos dinámicos como string y bytes?

Los tipos dinámicos usan esquema head/tail: head contiene offsets (32 bytes cada uno), tail contiene longitud + datos paddeados. Para transfer(address,uint256) todos son estáticos y se empaquetan directo. Para setMessage(string), el string emite su offset en head y su longitud UTF-8 + contenido paddeado a 32 bytes en tail.

¿Puedo decodificar calldata sin saber la firma?

Parcialmente. Los primeros 4 bytes son el selector — consúltalo en bases abiertas como 4byte.directory o Openchain.xyz para encontrar firmas candidatas. Sin la firma no puedes decodificar parámetros con fiabilidad porque ABI conoce los tipos. La herramienta enlaza con estas bases para lookup.

¿Por qué mi calldata difiere de la salida de ethers.js?

Ethers.js usa alias canónicos (uint -> uint256, int -> int256, bytes dinámicos) y puede diferir si pasas tipos no canónicos. Revisa el orden de parámetros — los arrays JSON deben coincidir con la firma. Ethers también codifica function() como selector 0x sin args; algunas herramientas omiten los bytes finales en cero.

Casos de Uso Comunes

  • Codificar transferencias de tokens ERC20 para interacciones con contratos
  • Decodificar datos de entrada de transacciones desde Etherscan o exploradores de bloques
  • Probar llamadas de funciones de contratos inteligentes antes del despliegue
  • Depurar transacciones fallidas analizando calldata
  • Construir transacciones personalizadas para wallets multisig
  • Analizar interacciones de protocolos DeFi (swaps de Uniswap, etc.)