Key takeaways
- TRON's economic constants — fees, resource prices, rewards — are dynamic on-chain parameters; the committee of the 27 active Super Representatives changes them by proposal, and the full set is queryable via
GetChainParameters. - Any SR, SR Partner, or SR Candidate can create a proposal, but only the 27 active SRs vote. Eighteen approvals within the 3-day window pass it, and the change lands at the next 6-hour maintenance period.
- Every parameter is a timestamped series: the Energy price has been reset eight times since genesis, and the 1 TRX account-activation fee did not exist before mid-2021.
- Reconstructing a past transaction's cost means using the value in force at that block — today's Energy price applied to a December 2022 transaction understates the burn by 4.2×.
TRON hard-codes almost none of its economics. The price of a unit of Bandwidth or Energy, the fee for activating an account, the reward an SR collects per block — each lives on-chain as a “dynamic parameter,” and each can be rewritten by a vote of the network’s block producers. The companion piece on transaction cost, What a Transaction Actually Costs, describes the rates as governance parameters rather than a live auction. This is the machinery behind that phrase: who can propose a change, who votes, and when a new value takes hold.
The forensic payoff is a habit. Because every one of these values has an effective date, the current setting answers questions about the present only. Any reconstruction of a past transaction’s cost, or a past account’s activation, has to use the value that governed the chain at that block’s timestamp.
Who sets the numbers
The java-tron documentation calls the Committee “the highest governing body of the TRON network, responsible for modifying the network parameters (eg. transaction fees, block rewards).” The Developer Hub identifies its membership: the current 27 Super Representatives — the same block producers covered in DPoS and the 27. Whoever holds the production seats also holds the pen on the fee schedule.
The modifiable set is public. GetChainParameters returns “all parameters that the blockchain committee can set” as a list of keys and values: getEnergyFee at 0.0001 TRX, getTransactionFee — the Bandwidth unit price — at 0.001 TRX, getCreateNewAccountFeeInSystemContract at 1 TRX, getMaintenanceTimeInterval at 6 hours. Those are the settings as of July 2026. None of them is a constant; each is the latest value in a series the committee can extend.
The proposal lifecycle
Any SR, SR Partner, or SR Candidate can create a proposal — that end of the process is open. It goes on-chain as a ProposalCreateContract whose payload is a map of chain-parameter IDs to new values, so a single proposal can change several parameters at once.
Voting is the narrow gate. Only the 27 active SRs may vote, each casting a ProposalApproveContract carrying the proposal ID and an approval flag. The system supports approval votes only: per the java-tron docs, “not voting is equivalent to disapproving,” so an SR that stays silent has in effect voted no. The window is 3 days by default — and even that window is a governable parameter (getProposalExpireTime, #92). Until a proposal takes effect, its creator can withdraw it with a ProposalDeleteContract.
A proposal passes at 18 or more approval votes — 18 of 27, which also means 10 SRs can block any change. It then takes effect at the next maintenance period, the 6-hour cycle on which the network tallies votes.
This is a different vote from the one most TRON users cast. Electing SRs runs through VoteWitnessContract and is open to anyone with staked TRX — that mechanism is Voting on TRON. Voting on proposals runs through ProposalApproveContract and is closed to everyone but the active 27.
The parameters that matter for investigation
Each governable value carries a discrete proposal-parameter number, and the Developer Hub documents the list with its current settings. The ones an investigator meets most often, as of July 2026:
| ID | Parameter | Documented value |
|---|---|---|
| #0 | Maintenance interval | 6 hours |
| #1 | SR application fee | 9,999 TRX |
| #2 | Account-creation fee (getCreateAccountFee) | 0.1 TRX |
| #3 | Bandwidth unit price | 0.001 TRX |
| #5 | SR block-production reward | 8 TRX |
| #7 | Account creation via system contract (getCreateNewAccountFeeInSystemContract) | 1 TRX |
| #11 | Energy unit price | 0.0001 TRX |
| #22 | Account-permission-update fee | 100 TRX |
| #31 | Voting reward per block, shared by vote weight | 128 TRX |
| #61 | Free Bandwidth per account | 600 units |
| #92 | Proposal expiration window | 3 days |
Two of these get conflated constantly, and keeping them apart matters. Parameter #2, at 0.1 TRX, is the Bandwidth burn charged on an account-creation transaction when the creator lacks staked Bandwidth. Parameter #7, at 1 TRX, is the activation fee proper — the cost of standing up a new account through the system contract. They stack: together they make the roughly 1.1 TRX total the resource-lifecycle article references. An analyst who treats “the account fee” as one number will misread both halves.
The reward parameters (#5 and #31) appear here as examples of the same principle — even the block and voting rewards are committee-settable values with effective dates. How those rewards actually reach SRs and voters is covered in the voting article.
Every value has a history
The Energy unit price shows how far a “constant” can travel, and the chain publishes the record itself. GetEnergyPrices returns every price the parameter has ever held, each stamped with its effective date. Queried 3 July 2026, the series reads: 100 sun per unit at genesis, 20 from 19 November 2018, 10 from 13 December 2018, 40 from 24 November 2020, 140 from 11 February 2021, 280 from 28 October 2021, 420 from 4 December 2022, 210 from 19 September 2024, and 100 from 29 August 2025. The current 100 sun (0.0001 TRX) is a return to the genesis price — after eight governance changes and a 42-fold spread between the lowest and highest settings.
Bandwidth keeps the same kind of ledger. GetBandwidthPrices returns 10 sun per unit at genesis, 40 from 24 November 2020, 140 from 11 February 2021, and 1,000 sun — today’s 0.001 TRX — from 26 July 2021.
Two steps in those series trace directly to published proposals. TIP-286 raised the Bandwidth unit price from 0.00014 TRX to 0.001 TRX and, in the same stroke, raised the system-contract account-creation fee from 0 to 1 TRX. That second change is the one that bites hardest in forensics: the 1 TRX activation fee — the anchor of account-activation analysis — did not exist before roughly July 2021. An account activated in 2020 paid no such fee, because the parameter was zero. TIP-483, created 1 December 2022 and effective 4 December 2022, moved the Energy price from 280 to 420 sun — and the on-chain series shows exactly that step on exactly that date. Two records, the same step on the same day.
Using the value in force
Because the prices are governance-set and timestamped rather than auctioned per block, a past transaction’s burned cost is deterministically reconstructable — the property the resource-lifecycle article states as “historical cost is deterministic.” The determinism has one condition: the reconstruction must use the parameter value in force at that block’s timestamp. Applying today’s 100-sun Energy price to a December 2022 transaction, when the price was 420 sun, understates the burn by a factor of 4.2. Applying the current 1 TRX creation fee to a 2020 activation invents a fee that was zero at the time.
The same discipline extends past fees. The 8 TRX block reward and the 128 TRX voting reward are proposal-modifiable values too, so any model of SR income at a historical date needs the values of that date.
When a reconstruction hinges on a fee, a price, or a reward, pull the series — GetChainParameters for the present, GetEnergyPrices and its Bandwidth counterpart for the past, the TIP record for why a step happened — and match the value to the block’s timestamp. The chain keeps a complete ledger of its own rules; the only way to misread it is to hold today’s page against yesterday’s transaction.
Sources
- TRON Developer Hub — Super Representatives — the committee as the current 27 SRs; who may propose versus vote; the 3-day validity window; the 18-vote pass condition; the numbered proposal-parameter list with documented values.
- java-tron documentation — Super Representative — the Committee as the network’s highest governing body; approval-only voting (“not voting is equivalent to disapproving”); creator cancellation before effect; “at least 18 approval votes” and effect at the next maintenance period.
- java-tron documentation — Governance Workflow — the ≥18-SR support requirement and
PROPOSAL_EXPIRE_TIMEdefaulting to 3 days. - TRON Developer Hub — GetChainParameters — the full committee-settable parameter set, and the semantics of
getCreateAccountFee,getCreateNewAccountFeeInSystemContract,getTransactionFee, andgetEnergyFee. - TRON Developer Hub — ProposalCreate —
ProposalCreateContractand its map of chain-parameter IDs to new values. - TRON Developer Hub — ProposalApprove —
ProposalApproveContractwithproposal_idandis_add_approval. - TRON Developer Hub — GetEnergyPrices — the timestamped historical Energy-price series (timestamp:price format, in sun).
- TronGrid — wallet/getenergyprices and wallet/getbandwidthprices — the live on-chain price series decoded in this article (queried 3 July 2026).
- TIP-286 — Bandwidth unit price changed from 0.00014 TRX to 0.001 TRX; system-contract account-creation fee changed from 0 to 1 TRX.
- TIP-483 — Energy unit price changed from 280 to 420 sun; created 1 December 2022, effective 4 December 2022.
- proposal_contract.proto — tronprotocol/protocol — the protocol definition of
ProposalApproveContract(owner_address,proposal_id,is_add_approval),ProposalCreateContract(owner_address,parameters) andProposalDeleteContract(owner_address,proposal_id) — the message types this chapter names. Protocol-authoritative: a contract type is either declared incore/contract/or it does not exist. - witness_contract.proto — tronprotocol/protocol — the protocol definition of
VoteWitnessContract(owner_address,votes,support) — the message type this chapter names. Protocol-authoritative: a contract type is either declared incore/contract/or it does not exist.