TRON Protobuf Streams
You can find the schema here.
TRON produces blocks approximately every 3 seconds, offering high throughput for transactions and smart contracts.
Structure of On-Chain Data
The TRON Protobuf Streams provide three main message types for different use cases:
BlockMessage
: Full blocks with detailed transaction informationTokenBlockMessage
: Focused on token transfersDexBlockMessage
: Specialized for DEX (Decentralized Exchange) trading activity
Block-Level Data
Each block in the stream includes a BlockHeader
with fields such as:
Number
: Block height in the chainHash
: The unique identifier of the blockTimestamp
: When the block was producedParentHash
: Hash of the previous blockTxTrieRoot
: Merkle root of transactionsAccountStateRoot
: State root hashTransactionsCount
: Number of transactions in this block
The BlockMessage
also includes:
Chain
: Information about the blockchainWitness
: Details about the block producer (Super Representative)Address
: The witness account addressId
: Witness identifierSignature
: Block signature
Transaction-Level Data
Transactions include:
TransactionHeader
: Core transaction dataHash
: Transaction hashFee
: Transaction feeIndex
: Position in the blockExpiration
: When the transaction expiresFeeLimit
: Maximum fee allowedSignatures
: Transaction signaturesFeePayer
: Account that pays the fee
Result
: Execution outcomeStatus
: Transaction statusSuccess
: Whether transaction succeededMessage
: Error message if failed
Receipt
: Resource consumption detailsEnergyUsageTotal
: Total energy consumedEnergyFee
: Fee paid for energyNetUsage
: Bandwidth usedNetFee
: Fee paid for bandwidth
Contract Data
The Contract
section contains detailed information about smart contract interactions:
Address
: Contract addressType
: Contract type (e.g., "TransferContract", "TriggerSmartContract")TypeUrl
: Protocol buffer type URLArguments
: Contract-specific argumentsInternalTransactions
: Sub-transactions created during executionCallerAddress
: Initiator addressTransferToAddress
: Recipient addressCallValues
: Assets transferredNote
: Additional information
Logs
: Event logs emitted by the contractTrace
: Detailed execution trace (similar to EVM)RewardWithdraw
: Information about reward distribution
Token Data
The TokenBlockMessage
stream provides information about token transfers:
TokenTransfer
: Records token movements with:Sender
: Address sending tokensReceiver
: Address receiving tokensAmount
: Amount of tokens transferredCurrency
: Detailed token informationSuccess
: Whether the transfer succeeded
TRON supports multiple token standards:
- TRC10: Native TRON tokens identified by TokenId
- TRC20: Similar to ERC20 on Ethereum
- TRC721/TRC1155: Non-fungible tokens
DEX (Decentralized Exchange) Data
The DexBlockMessage
stream is specialized for DEX trading activity:
DexTrade
: Records of trades executed on DEXsBuy
/Sell
: Both sides of the tradeDex
: Information about the exchangeSuccess
: Whether the trade succeededFees
: Trading fees paid
TRON-Specific Features
TRON has several unique features compared to other blockchain protocols:
- Energy and Bandwidth Model: Instead of a simple gas model, TRON uses Energy for smart contract execution and Bandwidth (Net) for transaction size
- Witness System: Block producers are called Witnesses or Super Representatives
- Contract Types: TRON has predefined contract types for common operations
- TRC10 Tokens: Native token support without smart contracts, referenced by TokenId
- Resource Delegation: Users can delegate resources to each other
Using This Stream in Python, JavaScript, and Go
Python, JavaScript, and Go code samples can be used with these streams by changing the topic to one of:
tron.raw.proto
(for raw block data)tron.transactions.proto
tron.tokens.proto
tron.dextrades.proto
tron.broadcasted.raw.proto
(for raw broadcasted block data)tron.broadcasted.transactions.proto
(for broadcasted transactions)tron.broadcasted.tokens.proto
(for broadcasted token transfers)tron.broadcasted.dextrades.proto
(for broadcasted DEX trades)
The Python package bitquery-pb2-kafka-package includes all schema and is up to date so you don't have to manually install schema files.