TRX

TRX is the native token of the TRON network — used for fees, staking, voting rewards, and as the primary unit of value across the TRON DeFi ecosystem.

📘

Prerequisites

TRX is the native token of the TRON network. Rewards on the TRON network are issued in the form of TRX, users obtain network resources and voting rights by staking TRX, and across the TRON DeFi ecosystem TRX is widely used as collateral, liquidity, and the unit of account for fees.

How TRX powers the TRON network

The TRON network allows developers to create decentralized applications (DApps) that share limited TRON network resources. TRON therefore needs a mechanism to prevent DApps from accidentally or maliciously occupying all network resources.

Resource consumption is measured in Bandwidth and Energy — Bandwidth measures the size of transactions stored in the blockchain database, and Energy measures the computing power required by the TRON Virtual Machine (TVM) to execute a specific operation. When users make a transaction, they need to pay for the Bandwidth and Energy required to execute the transaction. TRON supports paying for Bandwidth and Energy by burning TRX.

This means that even if a malicious DApp submits an infinite loop, the transaction eventually runs out of TRX and terminates, allowing the network to return to normal.

Staking TRX

By staking TRX, users obtain TRON Power (TP) and either Bandwidth or Energy. TRON Power is used to vote for Super Representatives (SRs), and stakers share in voting rewards based on the SRs they vote for.

The complete staking lifecycle is Stake → Unstake → Withdraw: stake TRX to obtain resources and TRON Power, begin unstaking when you want the TRX back (which starts a 14-day waiting period), and withdraw the liquid TRX once the wait completes.

For the full mechanics, see Staking on TRON.

Minting TRX

Minting is the process by which new TRX gets created on the TRON network. The underlying TRON protocol creates the new TRX — it is not possible for a user to create TRX directly.

TRX is minted when a Super Representative (SR) produces a block on the TRON network. For each new block, the TRON protocol generates a block production reward of 8 TRX and a voting reward of 128 TRX. Both rewards are dynamic parameters and can be modified through committee proposals.

Burning TRX

TRX can be destroyed by a process called "burning". Burned TRX is removed from circulation permanently.

Every transaction on TRON consumes Bandwidth or Energy. When a user's available Bandwidth or available Energy is insufficient, they burn TRX to pay for the resources required for the transaction. Burning TRX both reduces TRX inflation and prevents accidental or malicious transactions from monopolizing network resources.

Denominations

TRX has a smaller denomination called sun for representing tiny amounts. Most smart contract and API interactions are calculated in sun.

UnitValueWhere used
TRX1 TRXHuman-facing amounts
sun1 TRX = 1,000,000 sunSmart contract / API computation
📘

sun vs SUN

The TRX subunit is always lowercase sun. Uppercase SUN refers to a completely different asset — the SUN.io TRC-20 governance token. These two are unrelated; cross-check every occurrence before shipping code or copy.

Transferring TRX

A TRX transfer is a TransferContract transaction that moves TRX from one account to another. Below are examples using the HTTP API and the TronWeb SDK.

Using the HTTP API

The Fullnode HTTP endpoint wallet/createtransaction creates an unsigned TRX transfer transaction:

BASE_URL=https://api.shasta.trongrid.io   # example — replace with any TRON node (TronGrid, third-party, or self-hosted)
curl -X POST ${BASE_URL}/wallet/createtransaction -d '{
    "to_address": "TVDGpn4hCSzJ5nkHPLetk8KQBtwaTppnkr",
    "owner_address": "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR",
    "amount": 10000000,
    "visible": true
}'

After receiving the unsigned transaction, sign it with the owner's private key and broadcast it to complete the transfer.

Using the TronWeb SDK

const privateKey = "...";
const fromAddress = "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR";
const toAddress = "TVDGpn4hCSzJ5nkHPLetk8KQBtwaTppnkr";
const amount = 10000000; // amount in sun (10 TRX)

// Create an unsigned TRX transfer transaction
const tradeobj = await tronWeb.transactionBuilder.sendTrx(
    toAddress,
    amount,
    fromAddress
);

// Sign
const signedtxn = await tronWeb.trx.sign(tradeobj, privateKey);

// Broadcast
const receipt = await tronWeb.trx.sendRawTransaction(signedtxn);
console.log('Receipt:', receipt);

Querying TRX balance

Using the HTTP API

The Fullnode HTTP endpoint wallet/getaccount returns account information; the balance field is the TRX balance, in sun:

BASE_URL=https://api.shasta.trongrid.io   # example — replace with any TRON node (TronGrid, third-party, or self-hosted)
curl -X POST ${BASE_URL}/wallet/getaccount -d '{
    "address": "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR",
    "visible": true
}'

Using the TronWeb SDK

const address = "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR";

// getAccount returns the account info; balance is in sun
const account = await tronWeb.trx.getAccount(address);
console.log('Balance in sun:', account.balance);

Related resources