TRON
The Vault supports the TRON network with full deposit and withdrawal functionality for native TRX and TRC-20 tokens. TRON is particularly relevant for USDT transfers, as Tether’s TRC-20 USDT is one of the most liquid stablecoin variants with very low transaction costs.
Address Generation
TRON addresses use a Base58Check encoding and always begin with the letter T. The address is derived from the same MPC public key as the Ethereum address — TRON uses the same secp256k1 elliptic curve as Ethereum but with a different address encoding:
- Take the ECDSA public key (uncompressed, 65 bytes)
- Hash with Keccak-256
- Take the last 20 bytes
- Prepend
0x41(TRON address prefix) - Base58Check encode
The resulting address looks like: TN9xs3uR7vKpMzQw4Yj8bLcXeD2Fk5GhN6
Supported Asset Types
| Asset Type | Support |
|---|---|
| Native TRX | Full (deposit + withdrawal) |
| TRC-20 tokens | Full (deposit + withdrawal) |
| TRC-10 tokens | Not supported |
| TRC-721 (NFTs) | Not supported |
Widely used TRC-20 tokens include:
| Token | Contract Address |
|---|---|
| USDT | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t |
| USDC | TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8 |
| WTRX | TNUC9Qb1rRpS5CbWLmNMxXBjyFoydXjWFR |
Energy and Bandwidth Model
TRON does not use gas fees in the same way as Ethereum. Instead, transactions consume two types of resources:
Bandwidth — required for all transactions. Accounts receive a small amount of free bandwidth daily (~600 bytes). Bandwidth can be obtained by:
- Freezing TRX to obtain delegated bandwidth
- Burning TRX (0.001 TRX per byte) if bandwidth is exhausted
Energy — required for smart contract interactions (TRC-20 transfers). Energy can be obtained by:
- Freezing TRX to obtain delegated energy
- Burning TRX at the current energy price if energy is exhausted
For high-volume wallets, The Vault recommends keeping a portion of TRX frozen in the wallet to maintain sufficient Energy and Bandwidth reserves, reducing the effective cost per TRC-20 transfer to near zero.
The fee estimate API reflects the actual TRX cost based on your wallet’s current frozen resources. If you have sufficient frozen Energy, TRC-20 transfers may cost zero TRX in fees.
Deposit Detection
TRON deposit detection uses the TRON FullNode HTTP API (TronGrid or your own java-tron node — TronGrid is optional, with an API-key header). The indexer:
- Reads each new block with
getblockbynumand its transaction receipts withgettransactioninfobyblocknum. - Matches
TransferContract(native TRX) transfers where thetofield is a wallet deposit address. - For TRC-20 transfers, parses the
Transfer(address,address,uint256)event log, filtered to the configured token contracts and watched addresses.
Polling interval: 6 seconds (configurable).
TRON blocks can contain up to 1,000+ transfer events. Ensure your TronGrid or self-hosted java-tron node can handle the query load for your polling interval, particularly for high-activity mainnet blocks.
Confirmation Policy
Default confirmation threshold: 19 blocks (~1 minute at 3-second block times).
TRON uses Delegated Proof of Stake (DPOS) consensus with 27 super representatives. Finality is probabilistic. 19 confirmations provides strong protection against reorganisation for standard operational use.
For large USDT transfers, consider raising the threshold to 40–60 confirmations (2–3 minutes).
TRC-20 Transfer Mechanics
TRC-20 withdrawals invoke the transfer(address,uint256) function on the token contract. The Vault constructs the TriggerSmartContract transaction, signs it with MPC, and broadcasts via the TronGrid API.
The wallet must hold sufficient TRX (or frozen Energy) to cover the contract execution cost. Each TRC-20 call is submitted with a fee limit (100 TRX); if Energy is insufficient and the wallet cannot cover the resulting TRX burn, the node rejects it with an energy error and the transfer fails.
Transaction Broadcasting
Signed TRON transactions are broadcast via the broadcasttransaction API endpoint. The transaction ID (txID) is a 32-byte SHA256 hash of the transaction data and can be used to track the transaction on a TRON block explorer (e.g., TRONSCAN).