Skip to main content
Schema: tron.core Table: fact_internal_transactions Type: View

What

This table contains internal transactions generated during smart contract execution on the Tron blockchain. Unlike EVM chains where every transaction produces at least one trace, Tron internal transactions are sparse — only generated for contract-to-contract calls. Each row represents one internal call with its associated value transfer and status.

Key Use Cases

  • Tracking contract-to-contract calls and value transfers
  • Analyzing native TRX movements between smart contracts
  • Debugging failed contract interactions via the rejected/succeeded fields
  • Identifying TRC-10 token transfers embedded in call_value_info

Important Relationships

  • Join with fact_transactions: Use tx_hash for the originating transaction context
  • Join with ez_native_transfers: Native TRX transfers are extracted from this table’s call_value_info
  • Join with dim_contracts: Use caller_address or to_address for contract metadata

Commonly-used Fields

  • tx_hash: Parent transaction identifier
  • internal_transaction_id: Position of this internal call within the transaction
  • caller_address: Contract that initiated the internal call
  • to_address: Destination contract or address
  • call_value_info: JSON containing native TRX and/or TRC-10 token values transferred
  • internal_transaction_succeeded: Whether the internal call executed successfully

Sample queries

-- Internal transaction volume by day
SELECT
    DATE_TRUNC('day', block_timestamp) AS day,
    COUNT(*) AS internal_tx_count,
    SUM(CASE WHEN internal_transaction_succeeded THEN 1 ELSE 0 END) AS succeeded,
    SUM(CASE WHEN NOT internal_transaction_succeeded THEN 1 ELSE 0 END) AS failed
FROM tron.core.fact_internal_transactions
WHERE block_timestamp >= CURRENT_DATE - 30
GROUP BY 1
ORDER BY 1 DESC;

-- Most active contracts by internal calls
SELECT
    caller_address,
    COUNT(*) AS internal_calls,
    COUNT(DISTINCT to_address) AS unique_targets,
    COUNT(DISTINCT tx_hash) AS unique_transactions
FROM tron.core.fact_internal_transactions
WHERE block_timestamp >= CURRENT_DATE - 7
    AND internal_transaction_succeeded
GROUP BY 1
ORDER BY 2 DESC
LIMIT 50;

Columns

Column NameData TypeDescription
BLOCK_NUMBERNUMBERSequential counter representing the position of a block in the Tron blockchain since genesis (block 0). Key Facts: Immutable once finalized Primary ordering mechanism for blockchain data Increments by 1 for each new block Encoded in the first bytes of blockhash Usage in Queries: Important: Many early Tron blocks are empty (zero transactions). Expect blocknumber gaps in transaction-based tables.
BLOCK_HASHTEXTThe unique hash of the block header. Key Facts: Contains the block number encoded in its first bytes Used for chain reorganization detection Example: ‘0x00000000033fc3d68297d9c3bfab0a01c57a56a61a82f270ba7f9e4400000000’
BLOCK_TIMESTAMPTIMESTAMP_NTZUTC timestamp when the block was produced by the super representative (SR). Format: TIMESTAMP_NTZ (no timezone) Precision: Second-level accuracy Best Practices: Note: Tron produces blocks every 3 seconds via DPoS consensus.
TX_HASHTEXTUnique identifier for the transaction. Format: 0x + 64 hexadecimal characters Usage: Primary key for transaction lookups Join key for event logs, internal transactions, and token transfers Immutable once confirmed Example: ‘0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060’
INTERNAL_TRANSACTION_IDTEXTSequential identifier of the internal transaction within the parent transaction. Used with txhash as a composite key for unique identification. Example: ‘internal0’
INTERNAL_TRANSACTION_HASHTEXTINTERNAL_TRANSACTION_HASH column
CALLER_ADDRESSTEXTThe contract address that initiated the internal call, in 0x-prefixed hex format. This is the contract executing the code that triggered the internal transaction. Example: ‘0x414d1ef8673f916debb7e2515a8f3ecaf2611034aa’
TO_ADDRESSTEXTThe destination address of the transaction, in 0x-prefixed hex format. Special Cases: NULL: Contract creation transaction Contract address: Smart contract interaction EOA address: Simple TRX transfer
CALL_VALUE_INFOVARIANTJSON string containing value transfer information for the internal transaction. May include native TRX transfers (entries without tokenid) and/or TRC-10 token transfers (entries with numeric tokenid). Requires PARSE_JSON() before accessing fields. Example: ‘[{"callValue": 1000000}]’ (1 TRX native transfer)
NOTETEXTNOTE column
REJECTEDBOOLEANWhether the internal transaction was rejected by the TVM. NULL indicates success; non-NULL indicates failure.
INTERNAL_TRANSACTION_SUCCEEDEDBOOLEANBoolean indicating if the internal transaction executed successfully. Derived from the rejected field — when rejected is NULL, the transaction succeeded. Values: TRUE: Internal transaction completed successfully FALSE: Internal transaction was rejected
EXTRATEXTEXTRA column
FACT_INTERNAL_TRANSACTIONS_IDTEXTPrimary key — unique identifier for each row ensuring data integrity. Format: VARCHAR containing composite key generated using MD5 hash of the relevant columns. Usage: Deduplication in incremental loads Join operations for data quality checks Troubleshooting specific records
INSERTED_TIMESTAMPTIMESTAMP_NTZUTC timestamp when the record was first added to the Flipside database. Format: TIMESTAMP_NTZ Use Cases: Data freshness monitoring Incremental processing markers Debugging data pipeline issues
MODIFIED_TIMESTAMPTIMESTAMP_NTZUTC timestamp of the most recent update to this record. Format: TIMESTAMP_NTZ Use Cases: Tracking data corrections and reprocessing Monitoring incremental model updates Data quality audits