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
- Expiration: the transaction is rejected after this time (typically 60 seconds after creation). An expired transaction is the most common reason for a failed broadcast.
- Fee limit: the maximum TRX that may be burned for energy on a contract call; absent for plain transfers.
- Permission ID: 0 for the owner permission, 2 and above for active permissions in multi-signature setups.
- Ref block: the block the transaction is anchored to; nodes use it to reject stale transactions.
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 type | What it does | Key fields |
|---|---|---|
| TransferContract | send TRX | owner_address, to_address, amount (sun) |
| TriggerSmartContract | call a contract (TRC-20 transfer, approve, swap) | contract_address, data, call_value |
| TransferAssetContract | send a TRC-10 token | asset_name, to_address, amount |
| FreezeBalanceV2 / UnfreezeBalanceV2 | stake or unstake TRX for energy or bandwidth | frozen_balance, resource |
| DelegateResourceContract | lend energy or bandwidth to another account | receiver_address, balance, resource |
| VoteWitnessContract | vote for super representatives | votes (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.