TRON - Missing Timestamps in Transactions

TRON behaves differently from other chains when it comes to transaction timestamps.

This article outlines how TRON handles timestamps, why some transactions return no timestamp, and how to correctly retrieve authoritative timing information when interacting with Tatum's TRON APIs.


Background

Tron Transactions may not include a transaction-level timestamp. Blocks always include a timestamp, and TRON block explorers (including Tronscan) display block time, not transaction time.

However, many transactions, especially those created manually or programmatically, can and will omit timestamp fields because TRON does not require them. This is a confirmed, upstream protocol behavior

As a result, Tatum's endpoint /v3/tron/transaction/{hash} or any other related to return Tron transactions may return transactions with no timestamp field.

TRON Protocol Behaviour

This behaviour is documented in the TRON Core implementation (java-tron) here: Issue #3845 – Some transactions have no timestamp


How to Retrieve Timestamps on TRON

Since transactions may not contain timestamps, you must rely on block timestamps.

Step_1: Fetch the transaction

GET /v3/tron/transaction/{transactionHash}

Extract blockNumber.

Step_2: Fetch the block containing the transaction

GET /v3/tron/block/{blockNumber}

In the block response, look for:

"block_header": {
  "raw_data": {
    "timestamp": 1611191724000
  }
}

This timestamp is the canonical time for the transaction.


Key Takeaways

  • Missing timestamp fields on TRON transactions is an expected behaviour.
  • TRON does not mandate transaction timestamps.
  • Block timestamp is the correct source of truth.