Reward calculation
How block production rewards (8 TRX/block) and voting rewards (128 TRX/block) are calculated and distributed to SRs, SR Partners, and their voters.
Prerequisites
Two types of rewards are generated by the TRON network and distributed to SRs, SR Partners, and the voters who voted for them.
The two reward types
| Reward type | Per block | Distributed to |
|---|---|---|
| Block production reward | 8 TRX | The SR who produced the block |
| Voting reward | 128 TRX | The top 127 candidates (27 SRs and 100 SR Partners), weighted by votes received |
Both rewards are subject to a brokerage ratio — the share that the SR or SR Partner keeps as commission before distributing the rest to their voters. The default brokerage is 20% (SR keeps 20%, voters split 80% in proportion to their votes).
SRs and SR Partners can query their brokerage ratio via wallet/getBrokerage and modify it via wallet/updateBrokerage.
Daily block budget
The TRON network produces blocks every 3 seconds. At each 6-hour Maintenance Period boundary, the boundary block itself is produced normally, but its next block is scheduled 6 seconds later (MAINTENANCE_SKIP_SLOTS = 2) to let the new active SR set initialize — the network does not "stop" for 6 seconds. So in a 24-hour day:
Total post-boundary gap time = 4 maintenance periods × 6 seconds = 24 seconds
Time available for blocks = 86,400 − 24 = 86,376 seconds
Blocks produced per day = 86,376 ÷ 3 = 28,792 blocks
This produces:
- Block production rewards per day =
28,792 × 8 TRX = 230,336 TRX - Voting rewards per day =
28,792 × 128 TRX = 3,685,376 TRX
Block production rewards
The 8 TRX per block is awarded to whichever SR produced that block. The 27 SRs take turns producing blocks, so over a day each SR produces about 28,792 / 27 ≈ 1,066 blocks (assuming all SRs are active).
At 20% brokerage, an SR earns approximately:
Daily SR commission from block production
= 230,336 / 27 × 20% ≈ 1,706 TRX
The remaining 80% is distributed to voters in proportion to the votes each voter cast for that SR:
Daily voter reward from block production
= 230,336 / 27 × 80% × (Voter's votes for this SR / Total votes for this SR)
SR Partners earn no block production rewardsOnly the top 27 (the SRs) produce blocks. SR Partners (ranks 28–127) receive no block production rewards — only voting rewards.
Voting rewards
The 128 TRX per block is split among the top 127 candidates: the 27 SRs and the 100 SR Partners ranked 28–127. Each candidate's share is proportional to the votes they received from the network as a whole. With 28,792 blocks per day:
Daily voting reward for an SR or SR Partner
= 3,685,376 × (Votes obtained by this candidate / Total votes for top 127)
× Brokerage ratio
And the daily voting reward to a voter who voted for that SR or SR Partner:
Daily voter reward
= 3,685,376 × (Voter's votes / Total votes for top 127) × (1 − Brokerage ratio)
(The math simplifies because the SR's votes cancel: a voter's reward is just their share of the total network votes, multiplied by 80%.)
Worked examples
For these examples, assume a voter has cast 10,000,000 votes, and the total votes across all top 127 candidates is 28,978,895,254 at the time of writing.
Example 1 — Voting for an SR
The SR has obtained 1,233,278,454 votes total, with a 10% brokerage.
| Recipient | Block production reward | Voting reward | Total |
|---|---|---|---|
| SR | 230,336 / 27 × 10% = 853.1 TRX | 3,685,376 × 1,233,278,454 / 28,978,895,254 × 10% = 15,684.8 TRX | 16,537.9 TRX |
| Voter | 230,336 / 27 × 90% × 10,000,000 / 1,233,278,454 = 62.3 TRX | 3,685,376 × 10,000,000 / 28,978,895,254 × 90% = 1,144.1 TRX | 1,206.4 TRX |
Example 2 — Voting for an SR Partner
The SR Partner has obtained 82,830,160 votes total, with the default 20% brokerage. SR Partners do not produce blocks, so block production reward is 0.
| Recipient | Block production reward | Voting reward | Total |
|---|---|---|---|
| SR Partner | 0 TRX | 3,685,376 × 82,830,160 / 28,978,895,254 × 20% = 2,106.6 TRX | 2,106.6 TRX |
| Voter | 0 TRX | 3,685,376 × 10,000,000 / 28,978,895,254 × 80% = 1,017.3 TRX | 1,017.3 TRX |
Reward distribution and withdrawalReward distribution is automatic but withdrawals are not. Rewards accrue to your account automatically as blocks are produced. To bring them into your spendable balance, you must call
wallet/withdrawbalance. Usewallet/getRewardto check your unwithdrawn balance.
How rewards are accumulated and settled
The user-facing formulas above are simplifications. Internally, the network handles rewards in three layers:
- Per-block — when an SR produces a block, the 8 TRX block reward goes into that SR's commission pool, and the 128 TRX voting reward is added to a chain-wide cycle-level pool keyed by the current Maintenance Period cycle.
- Per-cycle (every Maintenance Period) — the chain records the active SR set and each SR's vote count for the cycle. Voter shares are not paid out per-block; they accumulate against this cycle-level snapshot.
- At withdraw time — when a voter calls
wallet/withdrawbalanceor querieswallet/getReward, the network computes their accumulated share across every cycle they voted in, using the snapshot of votes at the start of each cycle.
The implication for users:
- A vote change takes effect at the next Maintenance Period boundary, not immediately. If you re-cast votes mid-cycle, the new distribution applies from the next cycle onward.
- Cancelling votes mid-cycle does not cancel rewards for the current cycle — the snapshot taken at cycle start still credits your share.
- Rewards are queryable any time without a withdrawal —
wallet/getRewardreturns the unwithdrawn balance computed live from snapshots.
Reward parameters at a glance
Block production reward, voting reward, and maintenance period are chain parameters that can change via SR vote — query wallet/getchainparameters for live values. Brokerage works differently: there is a code-level default (DEFAULT_BROKERAGE = 20 in DelegationStore.java), but each SR/SR Partner can override their own brokerage individually via wallet/updateBrokerage.
| Parameter | Mechanism | Default |
|---|---|---|
| Block production reward | Chain parameter #5 getWitnessPayPerBlock | 8 TRX (8,000,000 sun) |
| Voting reward | Chain parameter #31 getWitness127PayPerBlock | 128 TRX (128,000,000 sun) |
| Default brokerage | Code constant + per-account override | 20% (each SR can override their own) |
| Maintenance period | Chain parameter #0 getMaintenanceTimeInterval | 6 hours |
Related resources
- Voting for Super Representatives — vote with TP to start earning these rewards
- Stake 2.0 overview — stake TRX to obtain TP
- Consensus & DPoS — how SRs and SR Partners are elected
- Staking & reward APIs — full API reference table
- HTTP API — getReward
- HTTP API — withdrawbalance
- HTTP API — getBrokerage / updateBrokerage
Updated 4 days ago