¿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
- MetaMask y la mayoría de carteras: no se muestra directamente, pero las dApps y bibliotecas que llaman a
eth_signTransactionla reciben; ethers.js exponetx.serializedytx.unsignedSerialized. - Nodos:
eth_getRawTransactionByHashen Geth, Erigon y la mayoría de proveedores RPC; Etherscan la muestra bajo "Get raw tx data". - Flujos con cartera de hardware: el hex que se te pide confirmar tiene exactamente este formato.
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
| Tipo | EIP | Campos de comisión | Campos adicionales |
|---|---|---|---|
| 0 (legacy) | chain ID EIP-155 en v | gasPrice | ninguno |
| 1 | EIP-2930 | gasPrice | accessList |
| 2 | EIP-1559 | maxPriorityFeePerGas, maxFeePerGas | accessList |
| 3 | EIP-4844 | como el tipo 2 más maxFeePerBlobGas | blobVersionedHashes |
| 4 | EIP-7702 | como el tipo 2 | authorizationList |
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.