Ethereum Raw Transaction Decoder

Paste the signed or unsigned RLP hex of any EVM transaction. The sender is recovered from the signature, calldata is matched against common ERC-20 and DeFi functions, and the hash is computed so you can find it on an explorer.

Signed or unsigned. Decoding runs in your browser; nothing is sent anywhere, so it is safe for unsigned transactions you are about to sign.
Examples:

Decoded in your browser with JavaScript. Addresses are never uploaded or stored.

What is a raw Ethereum transaction?

A raw Ethereum transaction is the RLP-encoded byte string a wallet produces when it signs: for typed transactions a one-byte type prefix (0x01 to 0x04) followed by an RLP list of nonce, fee fields, gas limit, to, value, data and the ECDSA signature (v, r, s). The sender address is not stored; nodes recover it from the signature, and the transaction hash is Keccak-256 of these exact bytes.

Where to get the raw transaction

Fields explained

Max total fee is gas limit × max fee per gas: the most the transaction can cost; the real fee is usually lower. Unsigned hash is the digest the private key signs. Access list pre-declares storage keys to lower gas. For blob transactions the blob data itself is not part of the RLP shown here, only its versioned hashes.

Transaction types at a glance

TypeEIPFee fieldsExtra fields
0 (legacy)EIP-155 chain ID in vgasPricenone
1EIP-2930gasPriceaccessList
2EIP-1559maxPriorityFeePerGas, maxFeePerGasaccessList
3EIP-4844as type 2 plus maxFeePerBlobGasblobVersionedHashes
4EIP-7702as type 2authorizationList

Worked example

A type-2 transaction with gas limit 21,000, maxFeePerGas 30 gwei and maxPriorityFeePerGas 2 gwei shows a max total fee of 21,000 × 30 gwei = 630,000 gwei = 0.00063 ETH. If the block's base fee is 12 gwei, the effective price is 12 + 2 = 14 gwei and the real fee is 294,000 gwei = 0.000294 ETH; the remaining 0.000336 ETH is never charged. A to equal to the USDT contract with calldata starting a9059cbb is a token transfer, and its value field is 0.

Need to encode calldata or decode an unknown function? Use the ABI encoder / decoder and the selector lookup.

Frequently asked questions

How is the sender recovered?

An Ethereum transaction does not store the from address. The decoder hashes the signed payload with Keccak-256 and uses the r, s and v values to recover the public key, then derives the address, exactly as every node does. Unsigned transactions therefore show no sender.

What do the transaction types mean?

Type 0 is the original format with a single gas price. Type 1 (EIP-2930) adds an access list. Type 2 (EIP-1559) replaces gas price with max fee and priority fee. Type 3 (EIP-4844) carries blob commitments for rollups. Type 4 (EIP-7702) lets an EOA delegate to contract code via an authorization list.

Why does 'to' show a contract address I did not send to?

If the transaction has no recipient it creates a contract, and the decoder shows the address that contract will get, computed from the sender and nonce.

How do I read the value for tokens?

An ERC-20 transfer has value 0 ETH; the amount is inside the calldata. The decoder shows transfer(address,uint256) arguments as raw units; divide by the token's decimals with the converter.

What is the difference between the unsigned hash and the transaction hash?

The unsigned hash is Keccak-256 of the transaction without the signature (for legacy transactions with the chain ID in place of v, r, s, per EIP-155); it is what the private key signs. The transaction hash is Keccak-256 of the fully signed encoding and is the ID explorers show.

Does it work for BNB Chain, Polygon and L2s?

Yes. All EVM chains use the same encoding. The chain ID is shown with its name for the common networks.