Decodificador de transacciones Ethereum en bruto

Pega el hex RLP firmado o sin firmar de cualquier transacción EVM. El remitente se recupera a partir de la firma, el calldata se compara con las funciones comunes de ERC-20 y DeFi, y se calcula el hash para que puedas encontrarla en un explorador.

Firmada o sin firmar. La decodificación se ejecuta en tu navegador; no se envía nada a ningún sitio, así que es segura para transacciones sin firmar que estés a punto de firmar.
Ejemplos:

Se decodifica en tu navegador con JavaScript. Las direcciones nunca se suben ni se almacenan.

¿Qué es una transacción Ethereum en bruto?

Una transacción Ethereum en bruto es la cadena de bytes codificada en RLP que produce una cartera al firmar: para las transacciones tipadas, un prefijo de tipo de un byte (0x01 a 0x04) seguido de una lista RLP con nonce, campos de comisión, límite de gas, to, valor, data y la firma ECDSA (v, r, s). La dirección del remitente no se almacena; los nodos la recuperan a partir de la firma, y el hash de la transacción es el Keccak-256 de exactamente estos bytes.

Dónde obtener la transacción en bruto

Campos explicados

Comisión total máxima es límite de gas × max fee per gas: lo máximo que puede costar la transacción; la comisión real suele ser menor. Hash sin firmar es el digest que firma la clave privada. Access list declara de antemano claves de almacenamiento para reducir el gas. En las transacciones de blobs, los datos del blob no forman parte del RLP que se muestra aquí, solo sus hashes versionados.

Tipos de transacción de un vistazo

TipoEIPCampos de comisiónCampos adicionales
0 (legacy)chain ID EIP-155 en vgasPriceninguno
1EIP-2930gasPriceaccessList
2EIP-1559maxPriorityFeePerGas, maxFeePerGasaccessList
3EIP-4844como el tipo 2 más maxFeePerBlobGasblobVersionedHashes
4EIP-7702como el tipo 2authorizationList

Ejemplo práctico

Una transacción de tipo 2 con límite de gas 21.000, maxFeePerGas de 30 gwei y maxPriorityFeePerGas de 2 gwei muestra una comisión total máxima de 21.000 × 30 gwei = 630.000 gwei = 0,00063 ETH. Si la base fee del bloque es 12 gwei, el precio efectivo es 12 + 2 = 14 gwei y la comisión real es 294.000 gwei = 0,000294 ETH; los 0,000336 ETH restantes nunca se cobran. Un to igual al contrato de USDT con calldata que empieza por a9059cbb es una transferencia de token, y su campo valor es 0.

¿Necesitas codificar calldata o decodificar una función desconocida? Usa el codificador / decodificador ABI y la búsqueda de selectores.

Preguntas frecuentes

¿Cómo se recupera el remitente?

Una transacción Ethereum no almacena la dirección from. El decodificador calcula el Keccak-256 de la carga firmada y usa los valores r, s y v para recuperar la clave pública, y luego deriva la dirección, exactamente como hace cada nodo. Por tanto, las transacciones sin firmar no muestran remitente.

¿Qué significan los tipos de transacción?

El tipo 0 es el formato original con un único precio de gas. El tipo 1 (EIP-2930) añade una access list. El tipo 2 (EIP-1559) sustituye el precio de gas por max fee y priority fee. El tipo 3 (EIP-4844) transporta compromisos de blobs para rollups. El tipo 4 (EIP-7702) permite a una EOA delegar en código de contrato mediante una lista de autorizaciones.

¿Por qué 'to' muestra una dirección de contrato a la que no envié?

Si la transacción no tiene destinatario, crea un contrato, y el decodificador muestra la dirección que ese contrato recibirá, calculada a partir del remitente y el nonce.

¿Cómo leo el valor en el caso de los tokens?

Una transferencia ERC-20 tiene valor 0 ETH; la cantidad está dentro del calldata. El decodificador muestra los argumentos de transfer(address,uint256) en unidades en bruto; divide por los decimales del token con el conversor.

¿Cuál es la diferencia entre el hash sin firmar y el hash de la transacción?

El hash sin firmar es el Keccak-256 de la transacción sin la firma (en las transacciones legacy, con el chain ID en lugar de v, r, s, según EIP-155); es lo que firma la clave privada. El hash de la transacción es el Keccak-256 de la codificación completamente firmada y es el ID que muestran los exploradores.

¿Funciona para BNB Chain, Polygon y L2?

Sí. Todas las cadenas EVM usan la misma codificación. El chain ID se muestra con su nombre para las redes más comunes.