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 producing SR's reward pool; the SR retains its brokerage share and voters split the remainder in proportion to their votes for that SR |
| 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.
Theoretical daily block and reward budget
TRON normally schedules one block-production slot every 3 seconds. Mainnet currently schedules maintenance at 6-hour intervals. After each maintenance-triggering block, the next two 3-second slots do not produce blocks. Assuming no SR misses a scheduled slot, the theoretical block count in 24 hours is:
Regular slots in 24 hours = 86,400 ÷ 3 = 28,800
Protocol-skipped slots = 4 × 2 = 8
Theoretical producible slots = 28,800 − 8 = 28,792This produces:
- Theoretical block production rewards per day =
28,792 × 8 TRX = 230,336 TRX - Theoretical voting rewards per day =
28,792 × 128 TRX = 3,685,376 TRX
If a scheduled SR misses a slot, the actual daily block count and both reward totals will be lower than these theoretical values.
Block production rewards
The 8 TRX per block is awarded to whichever SR produced that block. The 27 SRs take turns producing blocks, so each SR averages about 28,792 / 27 ≈ 1,066 blocks per day when every scheduled slot produces a block.
At 20% brokerage, an SR earns approximately:
Daily SR commission from block production
= 230,336 / 27 × 20% ≈ 1,706 TRXThe 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 ratioAnd 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 illustrative examples, assume a voter has cast 10,000,000 votes and the total votes across all top 127 candidates is 28,978,895,254. These are hypothetical inputs, not current network values. For a calculation using live data, call wallet/listwitnesses, rank the returned candidates by voteCount, and sum the top 127 before substituting the current values below.
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 protocol applies the producing SR's brokerage ratio to the 8 TRX block reward. It also divides the 128 TRX voting reward among the top 127 candidates by vote weight and applies each candidate's brokerage ratio. The voter portions are added to separate reward records keyed by candidate and Maintenance Period.
- Per-cycle (every Maintenance Period) — the chain records each candidate's vote count and brokerage ratio for the cycle. Voter shares are calculated from the reward record and vote snapshot associated with each candidate and cycle.
- 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 is processed at the next scheduled maintenance update, 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 the 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 | Value (chain parameters are query-time Mainnet snapshots) |
|---|---|---|
| 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