Helper Coin - Audit

CertiKFiles named in the report

CertiK reviewed Helper Coin (Helper Coin - Audit) on 12 Jan 2023: 16 findings, 0 critical; 12 marked fixed, 4 open.

No open critical findings
Open the reportOpen Helper Coin’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings16

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High201
Medium104
Low107
HighCentralization RisksOpen

In the contract `Ownable` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and renounce or transfer the ownership. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5047460d70fa4ef8b7ad08b7567a7447/diagrams/centralization_Ownable-Ownable-_owner.svg) In the contract `HELPERCOIN`, the role `caller` has authority over the following functions. Any compromise to the `caller` account may allow the hacker to take advantage of this authority, distribute tokens, and set DEXes. - `rewardPrimeHolders()` - `rewardPrimeHoldersWithInput()` - `setIsDex()` - `distributePrimeHoldersRewardManually()` - `preSale()` In the contract `HELPERCOIN`, the role `_development_withdrawer_address` can withdraw `development_address`'s tokens, the role `_legal_and_backup_withdrawer_address` can withdraw `legal_and_backup_address`'s tokens, and the role `_marketing_withdrawer_address` can withdraw `marketing_address`'s tokens. Any compromise to the withdrawers may allow the hacker to take advantage of this authority and withdraw tokens from those fee receivers.

HighInitial Token DistributionOpen

```solidity=145 _mint(msg.sender, (75 * initialTotalSupply) / 100); _mint(_core_holders_address, (25 * initialTotalSupply) / 100); ``` `initialTotalSupply` amount of the HLPR tokens is sent to the contract deployer and `_core_holders_address` when deploying the contract. This could be a centralization risk as the deployer can distribute these tokens without obtaining the consensus of the community.

MediumCostly Loop and potential out of gasOpen

```solidity=415 for (uint256 i; i < holdersArrayLength; i++) ``` The value of variable `holdersArrayLength`, which stands for the number of token holders, could be very large and makes function `rewardPrimeHolders` extremely gas-consuming. ```solidity=406 reward_array_info = RewardArrayInfo( new address[](holdersArrayLength), new address[](holdersArrayLength), new address[](holdersArrayLength), new address[](holdersArrayLength), new address[](holdersArrayLength), new address[](holdersArrayLength) ); ``` ```solidity=548 for (uint256 i; i < reward_array_info.afterSlot6days.length; i++) { holdersMap[reward_array_info.afterSlot6days[i]].slot6Rewarded = true; _distribute( prime_holders_address, reward_array_info.afterSlot6days[i], reward_per_user_info.rewardAfterSlot6PerUser ); } ``` The iteration of `reward_array_info` is also costly. It is very likely that most variables in array `reward_array_info.afterSlot6days` are zero addresses because the length of array `reward_array_info.afterSlot6days` is the amount of all holders but only holders who hold HLPR more than 720 days are qualified to get rewards. This makes the loop costly.

LowPotential Reward LossOpen

```solidity=745 if ( _holdStruct.daysRewarded >= _slotDaysInfo.slot6Days || _numberDaysHold > _slotDaysInfo.slot6Days * 1 days || _isExemptFromReward[_holdersArray[i]] || _principalForReward == 0 ) { continue; } ``` A token holder is supposed to get daily rewards for up to 720 days. However, if he holds tokens for more than 720 days, which satisfies the condition `_numberDaysHold > _slotDaysInfo.slot6Days * 1 days`, he could lose the reward for the last `720 - _numberDaysHold` days.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (6)

  • contracts/IERC20Metadata.sol
  • contracts/HELPERCOIN.sol
  • contracts/IERC20.sol
  • contracts/ERC20.sol
  • contracts/Ownable.sol
  • contracts/Context.sol

Part of Helper Coin’s security record

Helper Coin
Audits1 audit by 1 firmLast audit Jan 2023, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open Helper Coin’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us