TRX

TRX 是 TRON 网络的原生 Token,用于支付资源成本、质押、治理投票和协议奖励,也是 TRON DeFi 生态中的主要价值单位。

📘

前置阅读

TRX 是 TRON 网络的原生 Token。账户使用 TRX 支付资源成本、质押获取带宽或能量、获得 TRON Power 参与治理投票;协议也以 TRX 发放产块奖励和投票奖励。在 DApp 与 DeFi 场景中,TRX 还是常用的抵押资产、流动性资产和计价单位。

TRX 如何驱动 TRON 网络

TRON 通过资源模型为链上操作计量成本,避免单个账户或合约长期占用网络资源。开发者部署合约、调用合约、转账或提交系统合约交易时,交易都会消耗相应资源。

资源成本主要由两类资源计量:

  • 带宽(Bandwidth):计量交易序列化后写入链上的字节大小。
  • 能量(Energy):计量 TVM 执行智能合约所需的计算开销。

账户可通过免费带宽、质押资源或资源代理覆盖这部分成本。资源不足时,网络会按当前带宽或能量单价燃烧 TRX 支付资源成本。也就是说,TRX 既是网络原生资产,也是资源成本的结算资产。

质押 TRX

账户质押 TRX 后获得带宽或能量,并同时获得 TRON Power(TP)。带宽和能量用于支付资源成本; TRON Power 只用于为超级代表(SR)候选人投票,不参与交易扣费。

在 Stake 2.0 中,质押生命周期分为三步:

  1. 质押(Stake):锁定 TRX,选择获取 Bandwidth 或 Energy,并获得等额 TP。
  2. 解除质押(Unstake):需要取回 TRX 时发起解除质押,资金进入等待期。
  3. 提取(Withdraw):等待期结束后,将已解除质押的 TRX 提取回可用余额。

完整机制详见 TRON 网络质押

铸造 TRX

“铸造”指协议根据共识规则发行新的 TRX。普通账户不能自行铸造 TRX;新增 TRX 只来自协议奖励。

每产生一个新区块,协议会发放两类奖励:

  • 产块奖励:8 TRX,发给该区块的出块 SR。
  • 投票奖励:128 TRX,由前 127 名 SR 按投票权重共享。

这两个数值都是链上参数,可通过超级代表委员会提案调整。查询当前参数值及了解参数变更流程,参见网络参数

燃烧 TRX

与铸造机制相对应, TRON 也有原生燃烧机制。

当账户发起交易但可用带宽或能量不足时,网络会从账户余额中燃烧 TRX 支付资源成本。部分系统操作也会直接收取固定 TRX 费用,这些费用同样会被协议燃烧。被燃烧的 TRX 会从流通供应中移除;当燃烧量大于新增奖励时,TRX 净供应量会下降。

面值

TRX 的最小单位是 sun。智能合约和节点 API 通常使用 sun 表示金额。

单位换算关系适用场景
TRX1 TRX面向用户前端展示的金额
sun1 TRX = 1,000,000 sun智能合约内部逻辑、API 接口传参
📘

区分 sun 与 SUN

  • sun:代表 TRX 的最小计价单位(全部小写)。
  • SUN:代表 SUN.io 平台发行的 TRC-20 治理 Token(全部大写)。

编写接口参数、合约代码或产品文案时,需要严格区分大小写。

转账 TRX

TRX 转账对应 TransferContract 系统合约。客户端先构建未签名交易,使用发送方私钥签名,再广播到网络。

使用 HTTP API

调用全节点 HTTP 接口 wallet/createtransaction 构建一笔未签名的 TRX 转账交易:

BASE_URL=https://api.shasta.trongrid.io   # 示例:Shasta 测试网节点地址
curl -X POST ${BASE_URL}/wallet/createtransaction -d '{
    "to_address": "TVDGpn4hCSzJ5nkHPLetk8KQBtwaTppnkr",
    "owner_address": "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR",
    "amount": 10000000,  // 金额为 10,000,000 sun (即 10 TRX)
    "visible": true
}'

接口返回未签名交易后,在本地用发送方私钥签名,再调用广播接口完成转账。

使用 TronWeb SDK

const privateKey = "...";
const fromAddress = "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR";
const toAddress = "TVDGpn4hCSzJ5nkHPLetk8KQBtwaTppnkr";
const amount = 10000000; // 金额以 sun 计(10 TRX)

// 1. 构建未签名的 TRX 转账交易体
const tradeobj = await tronWeb.transactionBuilder.sendTrx(
    toAddress,
    amount,
    fromAddress
);

// 2. 本地私钥签名
const signedtxn = await tronWeb.trx.sign(tradeobj, privateKey);

// 3. 广播交易到网络
const receipt = await tronWeb.trx.sendRawTransaction(signedtxn);
console.log('广播回执:', receipt);

查询 TRX 余额

使用 HTTP API

调用全节点 HTTP 接口 wallet/getaccount 获取账户信息。返回的 balance 字段就是账户 TRX 余额,单位为 sun

BASE_URL=https://api.shasta.trongrid.io
curl -X POST ${BASE_URL}/wallet/getaccount -d '{
    "address": "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR",
    "visible": true
}'

使用 TronWeb SDK

const address = "TM2TmqauSEiRf16CyFgzHV2BVxBejY9iyR";

// 获取账户信息,从中提取 balance (单位为 sun)
const account = await tronWeb.trx.getAccount(address);
console.log('账户余额 (sun):', account.balance);

相关资源