Glow Token V2 security record

BNB Chain

As of 3 Nov 2026, Glow Token V2 has 1 audit report on Trustblock, by CertiK, dated 3 Aug 2022. That report lists 1 open critical finding. It also holds 1 deployed contract on 1 chain.

Critical findings
1 open critical finding
Reported in “Glow Token V2” by CertiK, Aug 2022. Not marked fixed in that report. See the findings
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Glow Token V2Security firm: CertiKDate: Scope: 1 address on BNB Chain1 open critical findingOpen · skynet.certik.com

Findings29

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

SeverityOpenAcknowledgedFixed
Critical100
High045
Medium031
Low1302
HighExclude Account from Fees MistakenlyGlow Token V2 · CertiK · 3 Aug 2022Fixed

```solidity=292 bool prevExclusion = _excludeFromFees[account]; // ensure we don't remove exclusions if the current wallet is already excluded _excludeFromFees[msg.sender] = true; //try to swap for tokens, if it fails (bad contract, or whatever other reason, send BNB) try _pancakeRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amountWei}( 0, path, account, block.timestamp ){buyNoFeesSuccess = true;} catch {buyNoFeesSuccess = false;} _excludeFromFees[msg.sender] = prevExclusion; // set value to match original value ``` The `msg.sender` is mistakenly set as `_excludeFromFees[msg.sender] = true` and reset as `prevExclusion`. Correct way is to exclude `account` from fees and reset.

Open the report
HighHandle Exception MistakenlyGlow Token V2 · CertiK · 3 Aug 2022Fixed

The function `_swapBNBtoRWRD` is used for sending lottery tokens or distributing reward tokens. If failing to send `RWRD`, it will lead to send BNB directly. If BNB also fails to be sent. The `_holders[account].alreadyPaid` will be reset. However, the `_holders[account].alreadyPaid` may be less than `amountWei`, which will cause the reversion of transaction. Besides, the `_holders[account].alreadyPaid` is only used for calculating reward, which means handling exception in this way does not fit the case of failing to send lottery tokens. ```solidity // if the swap failed, send them their BNB instead if(!buyNoFeesSuccess){(bool success,) = account.call{value: amountWei, gas: 3000}(""); if(!success) {_holders[account].alreadyPaid = _holders[account].alreadyPaid-(amountWei);} } ```

Open the report
HighMiscalculation of Unpaid RewardGlow Token V2 · CertiK · 3 Aug 2022Fixed

The mechanism of calculating the unpaid reward is wrong. At the same time of someone holding the tokens, he already has his unpaid reward, which seems the reward pays no attention to the holding time. The increased reward should only be used to reward those who hold tokens before the reward been produced. And if someone sells all his tokens, his unpaid reward will be zero even he have not received his reward yet, which is also unfair. What's more, the `profitPerToken` only changed when the reward being produced. If someone buys tokens after that, he also could get unpaid reward, which is `amount * profitPerToken`. Since the `profitPerToken` does not change according to the new holder's participation, his unpaid reward is actually much more than what he deserves. ```solidity function _getUnpaidReward(address account) private view returns (uint256) { if(_holders[account].rewardsAmount == 0){ return 0; } uint256 toBePaid = _calculateRewards(account,_holders[account].rewardsAmount); uint256 alreadyPaid = _holders[account].alreadyPaid; if(toBePaid <= alreadyPaid){ return 0; } return toBePaid-(alreadyPaid); } function _calculateRewards(address account,uint256 amount) private view returns (uint256) { return _excludeFromRewards[account]?0:amount*_tracker.profitPerToken/(2**64); } ```

Open the report
HighRelated States Not Updated in function `ownerFixSGlow Token V2 · CertiK · 3 Aug 2022Fixed

The function `ownerFixStuckBNB` moved the other BNB to `totalMarketingBNB`. However, `totalMarketingBNB` has been increased but the `totalLotteryBNB` and `totalRewardBNB` have not been decreased, which may cause problems. ```solidity function ownerFixStuckBNB() public onlyOwner { uint256 stuckBNB=address(this).balance-(_tracker.totalMarketingBNB+_tracker.totalCharityBNB); _tracker.totalMarketingBNB+=(stuckBNB>0?stuckBNB:0); emit OwnerFixStuckBNB(stuckBNB); } ```

Open the report
HighUnable to Remove ShareholdersGlow Token V2 · CertiK · 3 Aug 2022Fixed

The initial `_holders[account].toBePaid` is zero. When updating it in function `_distributeRewards`, it is still zero. Since it is always zero, there will be no chance to remove share holder in function `_setShareholder`. ```solidity function _setShareholder(address account, uint256 amount) private { if(amount > 0 && _holders[account].rewardsAmount == 0){ _addShareholder(account); } if(amount == 0 && _holders[account].toBePaid > 0){ _removeShareholder(account); } _tracker.totalTokensHeld = _tracker.totalTokensHeld-(_holders[account].rewardsAmount)+(amount); _holders[account].rewardsAmount = amount; } ... function _distributeRewards(address account) private { if(_holders[account].rewardsAmount == 0){ return; } uint256 amountWei = _getUnpaidReward(account); if(amountWei > 0){ _tracker.totalRewardBNBPayout+=amountWei; _holders[account].lastClaim = block.timestamp; _holders[account].alreadyPaid+=amountWei; _holders[account].toBePaid=_calculateRewards(account,_holders[account].rewardsAmount); _tracker.totalRewardBNB-=amountWei; _swapBNBtoRWRD(account, amountWei); } } ```

Open the report
MediumMiscalculation of `rewardBNB`Glow Token V2 · CertiK · 3 Aug 2022Fixed

```solidity uint256 rewardBNB=amountWei*_tax.marketingTax/100; ``` The `rewardBNB` is miscalculated by using the `marketingTax`.

Open the report
LowUnnecessary Calculation of `totalMarketingBNB`Glow Token V2 · CertiK · 3 Aug 2022Fixed

```solidity function _distributeBNB(uint256 amountWei) private { uint256 charityBNB=amountWei*_tax.charityTax/100; uint256 lotteryBNB=amountWei*_tax.lotteryTax/100; uint256 rewardBNB=amountWei*_tax.marketingTax/100; uint256 marketingBNB=amountWei-(charityBNB+lotteryBNB+rewardBNB); if(_tracker.totalTokensHeld==0)_tracker.totalMarketingBNB+=(charityBNB+lotteryBNB+rewardBNB+marketingBNB); ... ``` The `charityBNB+lotteryBNB+rewardBNB+marketingBNB` is `amountWei`. There is no need to calculate again.

Open the report
LowUnnecessary Check for `stuckBNB`Glow Token V2 · CertiK · 3 Aug 2022Fixed

```solidity=669 _tracker.totalMarketingBNB+=(stuckBNB>0?stuckBNB:0); ``` There is no need to check if `uint256 stuckBNB` is below zero or not.

Open the report

Contracts1

AddressChainSource code
0xef3725d9e4b9d758483c86be917ab7321dc2830cChain: BNB ChainSource code: Verified source

Show this on your site

Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.

Content

Facts

Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.

Fixed as
Language

Style

Layout
Theme
Accent
Corners

Format

Size
Date
Embed as
HTML
<head>
<script src="https://widget.trustblock.run/project-widget.min.js" defer></script>
</head>
<body>
<div
data-tb-project-widget
data-tb-project-slug="glow-token-v2"
></div>
</body>

Paste the code where the label should appear. It uses no API credit and updates by itself.

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