Simple Summary
This proposal aims to activate TIP-6780 on TRON mainnet.
TIP-6780 has already been implemented in GreatVoyage-v4.8.1(Democritus). Once this proposal is approved and takes effect, the updated SELFDESTRUCT instruction will be enabled at the protocol level.
Motivation
SELFDESTRUCT has already been deprecated in TRON through TIP-652, which formally signaled that its semantics could be further restricted in future TVM upgrades. TIP-6780 is the next step in that direction.
Ethereum introduced EIP-6780 in the Cancun upgrade, changing the behavior of the SELFDESTRUCT opcode. As an EVM-compatible public chain, TRON should activate the corresponding behavior in TVM to maintain compatibility with Ethereum and reduce semantic divergence across ecosystems.
TIP-6780 has already been included in GreatVoyage-v4.8.1(Democritus). This proposal is intended to complete the governance process required to enable this feature on-chain.
Activating this TIP will provide a more consistent execution model for developers, improve compatibility for contracts and tooling migrating across ecosystems, and encourage the ecosystem to move away from patterns that depend on full contract deletion.
How to Initialize the Voting Request
This is the command of initiating the voting request:
The proposal number refers to:
- Proposal 94: Activate
TIP-6780: SELFDESTRUCT only in same transaction
Timeline
The estimated timeline:
- Creation time of the voting request: 7th April 2026
- The effective time of voting request: 10th April 2026
Rationale
This proposal aligns TRON with the direction already taken by Ethereum and with TRON’s own previous deprecation path for SELFDESTRUCT. The main rationale is to preserve common fund-withdrawal and same-transaction initialization patterns, while removing the long-term dependency on full account deletion semantics.
According to TRON’s published on-chain analysis, ecosystem impact is expected to be limited:
- The number of contracts containing the
SELFDESTRUCT opcode is very low, and the number of such contracts holding assets is even lower.
- None of those contracts were observed to have executed an actual
SELFDESTRUCT transaction for the analyzed set.
- In 2025 data (up to October 17), there were
957,324 internal transactions involving SELFDESTRUCT, and 957,316 of them (99.999%) followed the pattern where the contract was created and self-destructed within the same transaction.
- The remaining
8 transactions were also self-destructed on the same day they were created, and those addresses were never reactivated or reused afterwards.
These observations suggest that the dominant existing usage pattern will remain unaffected after activation, while legacy patterns that rely on delayed destruction or address reuse are already rare in practice.
Technical Specs
After Proposal 94 takes effect, the behavior of SELFDESTRUCT will be updated as follows.
1. Contracts not created in the same transaction
If SELFDESTRUCT is executed in a transaction that is not the same transaction in which the contract was created:
- The current execution frame halts immediately.
SELFDESTRUCT does not delete contract code, storage, or the account itself.
- The entire account assets (
TRX, Staked TRX, TRC10) are transferred to the target address.
- If the target address is the contract itself, the assets are not burned and there is no net balance change.
2. Contracts created in the same transaction
If SELFDESTRUCT is executed in the same transaction in which the contract was created:
SELFDESTRUCT continues to behave as before.
- The current execution frame halts immediately.
- All account data is deleted.
- The entire account assets are transferred to the target address.
- The account balance of the contract calling
SELFDESTRUCT is set to 0.
- If the target address is the contract itself, the assets are burned.
As defined in the TIP, a contract is considered created at the beginning of a create transaction or when a CREATE-series operation begins execution (including CREATE, CREATE2, and future deployment operations). If a balance already exists at the new address, it is still considered a contract creation.
Note (TRON vs Ethereum): Ethereum often uses the presence of balance as a practical signal that an address already exists in state. TRON’s account model differs: accounts can be activated via multiple mechanisms and may exist with zero balance. This clause is kept to mirror EIP-6780 wording and does not change TRON’s account-activation rules; contract creation is determined by whether the contract is successfully created via CREATE/CREATE2 (or equivalent) in the same transaction.
3. Energy Cost Adjustment
- The fixed Energy cost of the
SELFDESTRUCT opcode is adjusted from 0 to 5000. This increases execution cost and further discourages misuse.
4. Impact on Existing Contracts
- Contracts that rely on re-deploying to the same address through
CREATE2 after SELFDESTRUCT will no longer work as before, unless the destruction happens in the same transaction as creation.
- Patterns that rely on
SELFDESTRUCT to destroy an account for security or lifecycle management are no longer reliable.
- Applications that rely on burning assets by calling
SELFDESTRUCT with the contract itself as beneficiary will no longer behave the same way, except in the same-transaction creation case.
5. Guidance for Developers
Although TIP-6780 preserves certain legacy behaviors in limited scenarios, SELFDESTRUCT remains deprecated as specified in TIP-652. Its use in newly deployed contracts is strongly discouraged, and future TVM upgrades may further reduce its functionality. Developers are encouraged to adopt safer and more maintainable patterns for contract lifecycle management.
Simple Summary
This proposal aims to activate
TIP-6780on TRON mainnet.TIP-6780has already been implemented inGreatVoyage-v4.8.1(Democritus). Once this proposal is approved and takes effect, the updatedSELFDESTRUCTinstruction will be enabled at the protocol level.Motivation
SELFDESTRUCThas already been deprecated in TRON throughTIP-652, which formally signaled that its semantics could be further restricted in future TVM upgrades.TIP-6780is the next step in that direction.Ethereum introduced
EIP-6780in the Cancun upgrade, changing the behavior of theSELFDESTRUCTopcode. As an EVM-compatible public chain, TRON should activate the corresponding behavior in TVM to maintain compatibility with Ethereum and reduce semantic divergence across ecosystems.TIP-6780has already been included inGreatVoyage-v4.8.1(Democritus). This proposal is intended to complete the governance process required to enable this feature on-chain.Activating this TIP will provide a more consistent execution model for developers, improve compatibility for contracts and tooling migrating across ecosystems, and encourage the ecosystem to move away from patterns that depend on full contract deletion.
How to Initialize the Voting Request
This is the command of initiating the voting request:
createProposal 94 1The proposal number refers to:
TIP-6780: SELFDESTRUCT only in same transactionTimeline
The estimated timeline:
Rationale
This proposal aligns TRON with the direction already taken by Ethereum and with TRON’s own previous deprecation path for
SELFDESTRUCT. The main rationale is to preserve common fund-withdrawal and same-transaction initialization patterns, while removing the long-term dependency on full account deletion semantics.According to TRON’s published on-chain analysis, ecosystem impact is expected to be limited:
SELFDESTRUCTopcode is very low, and the number of such contracts holding assets is even lower.SELFDESTRUCTtransaction for the analyzed set.957,324internal transactions involvingSELFDESTRUCT, and957,316of them (99.999%) followed the pattern where the contract was created and self-destructed within the same transaction.8transactions were also self-destructed on the same day they were created, and those addresses were never reactivated or reused afterwards.These observations suggest that the dominant existing usage pattern will remain unaffected after activation, while legacy patterns that rely on delayed destruction or address reuse are already rare in practice.
Technical Specs
After Proposal 94 takes effect, the behavior of
SELFDESTRUCTwill be updated as follows.1. Contracts not created in the same transaction
If
SELFDESTRUCTis executed in a transaction that is not the same transaction in which the contract was created:SELFDESTRUCTdoes not delete contract code, storage, or the account itself.TRX,Staked TRX,TRC10) are transferred to the target address.2. Contracts created in the same transaction
If
SELFDESTRUCTis executed in the same transaction in which the contract was created:SELFDESTRUCTcontinues to behave as before.SELFDESTRUCTis set to0.As defined in the TIP, a contract is considered created at the beginning of a create transaction or when a
CREATE-series operation begins execution (includingCREATE,CREATE2, and future deployment operations). If a balance already exists at the new address, it is still considered a contract creation.3. Energy Cost Adjustment
SELFDESTRUCTopcode is adjusted from0to5000. This increases execution cost and further discourages misuse.4. Impact on Existing Contracts
CREATE2afterSELFDESTRUCTwill no longer work as before, unless the destruction happens in the same transaction as creation.SELFDESTRUCTto destroy an account for security or lifecycle management are no longer reliable.SELFDESTRUCTwith the contract itself as beneficiary will no longer behave the same way, except in the same-transaction creation case.5. Guidance for Developers
Although
TIP-6780preserves certain legacy behaviors in limited scenarios,SELFDESTRUCTremains deprecated as specified inTIP-652. Its use in newly deployed contracts is strongly discouraged, and future TVM upgrades may further reduce its functionality. Developers are encouraged to adopt safer and more maintainable patterns for contract lifecycle management.