Tron Transaction Decoder

Paste raw_data_hex, a full signed transaction, or the JSON from TronGrid or tronWeb. The protobuf is decoded locally, the txID is computed, the signer is recovered from the signature, and TRC-20 calls are turned into recipient and amount.

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 Tron raw transaction?

A Tron raw transaction is the protobuf-serialized Transaction.raw message, which TronGrid and tronWeb expose as raw_data_hex: reference block bytes and hash, expiration, timestamp, fee limit, optional memo data and a list of typed contracts such as TransferContract or TriggerSmartContract. The txID is SHA-256 of these bytes, and the signature is a 65-byte secp256k1 signature over the same hash.

Fields explained

TRC-20 transfers

A USDT payment on Tron is a TriggerSmartContract whose contract_address is the token and whose data is transfer(address,uint256). The decoder shows the recipient both as the raw 20-byte hex argument and as the T… address, and the amount in raw units (USDT has 6 decimals, so divide by 1,000,000).

Contract types the decoder understands

Contract typeWhat it doesKey fields
TransferContractsend TRXowner_address, to_address, amount (sun)
TriggerSmartContractcall a contract (TRC-20 transfer, approve, swap)contract_address, data, call_value
TransferAssetContractsend a TRC-10 tokenasset_name, to_address, amount
FreezeBalanceV2 / UnfreezeBalanceV2stake or unstake TRX for energy or bandwidthfrozen_balance, resource
DelegateResourceContractlend energy or bandwidth to another accountreceiver_address, balance, resource
VoteWitnessContractvote for super representativesvotes (address, count)

Worked example

A USDT payment decodes to a TriggerSmartContract whose contract_address is TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t and whose data is a9059cbb + the recipient as a 32-byte word + the amount. Data ending in …0bebc200 means 200,000,000 raw units = 200 USDT (6 decimals). A fee_limit of 100000000 sun caps the energy cost at 100 TRX, and an expiration 60 seconds after timestamp is the tronWeb default.

Related: Tron address converter, USDT address validator, Nile batch transfer.

Frequently asked questions

What is raw_data_hex?

The protobuf serialisation of Transaction.raw: reference block, expiration, timestamp, fee limit and the list of contracts. Its SHA-256 is the txID, and it is what the private key signs. tronWeb's transactionBuilder returns it alongside a JSON view.

How is the signer recovered?

Tron uses secp256k1 like Ethereum. The decoder hashes raw_data with SHA-256 and recovers the public key from the 65-byte signature, then derives the T… address. If it matches the owner_address the transaction was signed by the owner's key; if not, it was signed by an active-permission key (multisig) or is invalid.

Which contract types are decoded?

TransferContract (TRX), TriggerSmartContract (TRC-20 transfers and other calls, with calldata arguments), TransferAssetContract (TRC-10), CreateSmartContract, FreezeBalanceV2 / UnfreezeBalanceV2, DelegateResource / UnDelegateResource, WithdrawExpireUnfreeze, VoteWitness, AccountCreate and AccountUpdate. Other types show their raw protobuf fields.

Why does the JSON txID differ from the computed one?

It should never differ. If it does, the raw_data_hex and the txID in the JSON do not belong to the same transaction, which is a sign of tampering or a copy-paste mistake. The decoder flags it.

Why is the signature 65 bytes?

It is r (32 bytes), s (32 bytes) and a recovery id v (1 byte), the same layout Ethereum uses. The recovery id is what lets the decoder derive the signer's public key, and therefore the T… address, without the address being stored in the transaction.

Can I decode a transaction before TronLink signs it?

Yes. The object passed to tronWeb.trx.sign contains raw_data_hex; paste the whole object. The result shows exactly which contract call you are about to authorise.