show more...


The EnergyTronFarm Smart-Contract were found no vulnerabilities, no backdoors and no scam scripts. The code was manually reviewed for all commonly known and more specific vulnerabilities.

So EnergyTronFarm Smart-Contract is safe for use in the main network.

CRITICAL ISSUES (critical, high severity): 0

Critical and harmful access for owners, user block ability, Bugs and vulnerabilities that enable theft of funds, lock access to funds without possibility to restore it, or lead to any other loss of funds to be transferred to any party.


ERRORS, BUGS AND WARNINGS (medium, low severity): 0

Bugs that can trigger a contract failure, with further recovery only possible through manual modification of the contract state or contract replacement altogether, Lack of necessary security precautions, other warnings for owners and users.



Methods to decrease the cost of transactions in Smart-Contract.


RECOMMENDATIONS (very low severity): 1

Hint and tips to improve contract functionality and trustworthy.





1- Loop on the dynamic variable (low severity).

If the user gets more parallel deposits his withdraw transaction going to cost more transaction fee, because the loop on the dynamic variable is used in the ‘withdraw’ function.

In case of exceeding the TRON limit of the size of transaction withdraw is not possible.


This comment is relevant only if a user creates an excessive amount of parallel deposits (more than 100).



2- Leader Prize

Based on the function “_calculateReferrerReward” in case of a user has just one or less subset than prize table level and his subset invest a large amount in one deposit, the user does not receive all prizes.


the main user should have more deposit count in his subnet equal to the prize table.






The EnergyTronFarm smart-contract provides the opportunity to invest any amount in TRX (from 200 TRX) in the contract and get a 200-280% return on investment in four different plans if the contract balance has enough funds for payment.


  • Dividends are paid from deposits of users.
  • All dividends are calculated at the moment of request and available for withdrawal at any time.
  • Users can withdraw only once a day.
  • Each subsequent Deposit is kept separately in the contract, in order to maintain the payment amount for each Deposit.



Contract Owners Fee



ADMIN:              1%



Plans Total Return Days Daily Profit
1 200% 40 5%
2 240% 40 6%
3 256% 40 6.4%
4 280% 40 7%








  • The minimum deposit amount is 200 TRX


Referral System (Match Bonus)

This contract paid referrals in five-level totally 8%

  • Level one: 3%
  • Level two: 2%
  • Level three: 1%
  • Level Four:    1%
  • Level five:     1%



  • Referral should be an active user. it means the referral address has at least one deposit
  • A referrer is specified once at the time of the first deposit and is assigned to the user without the possibility of changing. From each subsequent Deposit, the referrer will get his percent.
  • If a user has not a referrer all referral amount transfer to owners.



Leader Bonus

This contract based on user subset turnover give prizes based on the below table:

Turnover Prize
15,000 200
50,000 300
100,000 500
500,000 4,000
1,000,000 15,000
5,000,000 80,000
10,000,000 200,000
20,000,000 1,300,000
50,000,000 2,400,000










** All numbers are based on TRX


Turnover is calculated based on subset deposits. Each level deposit amount multiplied in a fixed number based on the below table:



Level 1 Level 2 Level 3 Level 4 Level 5
1 0.5 0.25 0.1 0.05




Notes and Hints:

  • In this contract based on function “grant”, the user can send TRX to create a new deposit for another address and his address is upline.


    function() external payable {

        if (msg.value == 0) {


        } else {

            invest(0, 0); //default to buy plan 0, no referrer




  • Based on top code if an address sends TRX directly to the contract address, a deposit will be created for him without a referral
  • If an address sends zero amount directly to the contract address withdraw function runs automatically.



require(uid2Investor[uid].timer < now, ” Exchanges every 24 hours “);

  • Based on top code, users can only withdraw once a day.




  • Constructor: init developer, marketing, admin and reference address wallets and call “_init” function at the deployment of the contract in the main net.
  • Function without any name: used this function to handle direct contract address call which returns invest and withdraws based on message TRX amount.
  • getMarketingAccount: only called by the owner and return marketing address.
  • getDeveloperAccount: only called by owner and return developer address.
  • getReferenceAccount: only called by the owner and return reference address.
  • _init: define owner as a first user of contract and initial plans and bonus levels.
  • getCurrentPlans: return all plans
  • getTotalInvestments: return total investment
  • getBalance: return contract balance
  • getUIDByAddress: return user ID based on user address
  • getInvestorInfoByUID: return all stats of a user
  • getInvestmentPlanByUID: return all user’s plans
  • _addInvestor: create a new user and set referrals
  • _invest: make a new deposit
  • grant: make a new deposit for another address
  • invest: call _invest and make a new deposit
  • withdraw: transfer available dividends, referral and bonus to the user
  • _calculateDividends: calculate dividends of a plan
  • _calculateReferrerReward: calculate referrals and turnover for bonus prizes