Thoreum Token Logo

THOREUM Token

ALERT: honeypot scam

About THOREUM

Listings

Token 3 years
CoinGecko 2 years
CoinMarketCap 3 years
[CoinGecko] alert: Thoreum has migrated to a https://bscscan.com/token/0xCE1b3e5087e8215876aF976032382dd338cF8401”>new contract address Thoreum V3 from old Thoreum V2. For more information, kindly visit this https://t.me/ThoreumOfficialChannel/1195”>page.
white paper

What Is Thoreum (THOREUM)?
Thoreum (THOREUM) is a hyper-deflationary, liquidity mining token that works best on a HODL strategy. The project founders describe it as a SafeMoon 2.0, a BEP-20 token that runs on Binance Smart Chain. Thoreum has five auto rewards ecosystems, and can be exchanged to BNB.

Thoreum offers double staking rewards — users can either stake to compound its growth or earn other third party tokens. Staking in Thunder farms and Thunder Alliances farms is also tax-free.

Thoreum token owners can earn real static rewards up to 40% by holding the coins in their wallet. This is because while the reflection on each transaction is only 4%, this full amount is distributed only to wallets holding less than 10% of the total supply. Meanwhile, over 90% of the total Thoreum supply is staked in Midgard pools and Thunder farms. \ \ In addition, Thoreum is also hosting a Lamborghini contest, where those who hold onto their coins can stand a chance to win a brand new Lamborghini Huracan. Entries for the contest depend on the total holding value of the THOREUM tokens one has, including the value of Thoreum in one’s wallet, pool and farms. Every $100 USD worth of Thoreum held is equivalent to one lucky draw ticket.

Who Are the Founders of Thoreum?
The developers of this project are currently anonymous, which is not uncommon for projects like this in the crypto space. Nothing is mentioned in Thoreum’s website or white paper on when the founders plan to dox. However, we might be able to expect them to dox when they move forward to future phases of their roadmap.

What Makes Thoreum Unique?
Thoreum claims to be the first of its kind to offer fee-free staking using its Thunder Boost mechanism. \ \ Under Thunder Boost, another unique feature of Thoreum is that it gives rewards in third-party coins. Staking THOREUM in one of its earning pools rewards holders with other crypto tokens such as BNB and BUSD, while at the same time earning Thoreum rewards automatically. \ \ The magnitude of Thoreum rewards sets it apart from other coins as well. Thoreum claims to have the highest buyback and burn of all coins at 10% of each transaction, which goes to the “THOR” contract for BNB buyback and burn. This decreases the supply of Thoreum over time, which would supposedly increase the value and benefit holders of the token in the long run. THOREUM is consistently burned at 4-5 million per day, and growing at a rate of about 100 BNB each day.

Thoreum also claims to give the biggest real static rewards to holders, where 40% of each transaction fee is auto-give to coin holders. With 90% of the total supply locked in high APR pools, the remaining 10% in the wallet gives holders the equivalent of 40% rewards.

Another feature Thoreum possesses is its Thunder Alliance mechanism. This makes it the first reflective token where users can farm in other yield farms and stake their tokens without incurring any fees. This is a result of Thoreum being in alliance with other farms known for their safe, non-rug pull environment.

Thoreum also offers a referral system to build up its user base, giving all referees an eternal 3% earnings of its referrals’ earnings.

Related Pages
Take a deep dive into Thoreum features, tokenomics and price prediction.

Find out more about SafeMoon in our deep dive.

Learn more about yield farming in our guide here.

What is web 3.0? Click here and find out.

Visit CoinMarketCap Alexandria to learn everything you need to know about cryptocurrency and more.

How Many Thoreum Coins are There in Circulation?
Thoreum (THOREUM) has a total supply of 5 billion, where 3 billion have been burned initially. 0.5 billion was the initial supply, and the remaining 1.5 billion will be unlocked through liquidity mining. As of September 2021, there are 282,376,260 coins circulating.

The total transaction tax is 12-14%, where 4-6% will be reflected as static rewards, while 8-10% goes to the buyback and burn mechanism. Across all farms and pools, there is a total value locked (TVL) of $20,638,656.

How Is the Thoreum Network Secured?
Thoreum has been audited three times, including by Certik, with the audits showing zero issues.

THOREUM is a BEP-20 token on the Binance Smart Chain (BSC). BSC is secured through the proof-of-stake consensus mechanism. 21 validators are elected every 24 hours to validate transactions and maintain blockchain security. These validators have to stake a certain amount of BNB coins with Binance to be eligible to do so.

Can Thoreum Coin Hit $1?
Across the year, Thoreum has hit a low of $0.005732 and a high of $0.03115. To reach $1 would imply an over 32 times price increase from the current average, which is not an impossible target to achieve, especially in the crypto space. However, as with most coins, hitting this target would greatly depend on the project team reaching its objectives and the community backing it.

Where Can You Buy Thoreum?
Thoreum is listed on PancakeSwap V2.

Cryptocurrency newbie? You can read more about how to enter the market and how to buy BTC, THOREUM or any other token in CoinMarketCap education portal — Alexandria.

Social

Laser Scorebeta Last Audit: 1 February 2023

report
Token seems to be a scam (type: honeypot scam).

Anti-Scam

Links


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)

Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _swapTokensForBNB(swapTokens) (#994)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapTokensForBNB(swapTokens_scope_0) (#1006)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
- dexRouter.addLiquidity(address(this),busdDividendToken,tokenAmount,busdAmount,0,0,treasuryWallet,block.timestamp) (#1118-1127)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1136-1142)
- _swapAndSendBusdDividends(sellTokens) (#1021)
- busdDividendTracker.distributeDividends(busdDividends) (#1176)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,_recipient,block.timestamp) (#1159-1165)
External calls sending eth:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
State variables written after the call(s):
- _burn(address(this),tokensToBurn) (#1026)
- _balances[account] = _balances[account].sub(amount,exceeds balance) (#182)
- super._transfer(from,address(this),fees) (#1046)
- _balances[sender] = _balances[sender].sub(amount,exceeds balance) (#163)
- _balances[recipient] = _balances[recipient].add(amount) (#164)
- super._transfer(from,to,amount) (#1050)
- _balances[sender] = _balances[sender].sub(amount,exceeds balance) (#163)
- _balances[recipient] = _balances[recipient].add(amount) (#164)
- swapping = false (#1030)
Apply the check-effects-interactions pattern.

Additional information: link


Contract ownership is not renounced (belongs to a wallet)

DividendPayingToken.constructor(string,string,address)._name (#449) shadows:
- ERC20._name (#97) (state variable)
DividendPayingToken.constructor(string,string,address)._symbol (#449) shadows:
- ERC20._symbol (#98) (state variable)
Rename the local variables that shadow another component.

Additional information: link

ThoreumV2._transfer(address,address,uint256).reason (#1059) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.

Additional information: link

ThoreumV2.setBusdDividendRewardFee(uint256) (#873-877) should emit an event for:
- busdDividendRewardsFee = newFee (#875)
ThoreumV2.setMaxWalletToken(uint256) (#836-838) should emit an event for:
- maxWalletToken = _maxToken (#837)
ThoreumV2.setMarketingFee(uint256) (#879-883) should emit an event for:
- marketingFee = newFee (#881)
ThoreumV2.setLiquidityFee(uint256) (#891-895) should emit an event for:
- liquidityFee = newFee (#893)
ThoreumV2.setMaxSellTransaction(uint256) (#811-813) should emit an event for:
- maxSellTransactionAmount = _maxTxn (#812)
ThoreumV2.setSellTransactionMultiplier(uint256) (#844-846) should emit an event for:
- sellFeeIncreaseFactor = _multiplier (#845)
ThoreumV2.setMaxBuyTransaction(uint256) (#807-809) should emit an event for:
- maxBuyTransactionAmount = _maxTxn (#808)
ThoreumV2.setSwapTokensAtAmount(uint256) (#840-842) should emit an event for:
- swapTokensAtAmount = _swapAmount (#841)
ThoreumV2.setToBurnTokenFee(uint256) (#830-834) should emit an event for:
- toBurnTokenFee = newFee (#832)
ThoreumV2.setTreasuryFee(uint256) (#885-889) should emit an event for:
- treasuryFee = newFee (#887)
BusdDividendTracker.updateMinimumTokenBalanceForDividends(uint256) (#641-643) should emit an event for:
- minimumTokenBalanceForDividends = _newMinimumBalance (#642)
Emit an event for critical parameter changes.

Additional information: link

Reentrancy in ThoreumV2.setBusdDividendTracker(address) (#858-871):
External calls:
- newBusdDividendTracker.excludeFromDividends(address(newBusdDividendTracker),true) (#863)
- newBusdDividendTracker.excludeFromDividends(address(this),true) (#864)
- newBusdDividendTracker.excludeFromDividends(address(dexRouter),true) (#865)
- newBusdDividendTracker.excludeFromDividends(address(dexPair),true) (#866)
- newBusdDividendTracker.excludeFromDividends(address(dexPairBusd),true) (#867)
- newBusdDividendTracker.excludeFromDividends(address(deadAddress),true) (#868)
State variables written after the call(s):
- busdDividendTracker = newBusdDividendTracker (#870)
Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _swapTokensForBNB(swapTokens) (#994)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapTokensForBNB(swapTokens_scope_0) (#1006)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
- dexRouter.addLiquidity(address(this),busdDividendToken,tokenAmount,busdAmount,0,0,treasuryWallet,block.timestamp) (#1118-1127)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1136-1142)
- _swapAndSendBusdDividends(sellTokens) (#1021)
- busdDividendTracker.distributeDividends(busdDividends) (#1176)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,_recipient,block.timestamp) (#1159-1165)
External calls sending eth:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
State variables written after the call(s):
- _burn(address(this),tokensToBurn) (#1026)
- _totalSupply = _totalSupply.sub(amount) (#183)
Reentrancy in DividendPayingToken._claimDividendOfUserToAnyToken(address,address) (#521-553):
External calls:
- _swapDividendTokenToAnyToken(_withdrawableDividend,dividendToken,_wantToken) (#528)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp) (#569-575)
State variables written after the call(s):
- thoreumRewardRemains[user] = thoreumRewardRemains[user].add(afterAmount.sub(beforeAmount)) (#537)
Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _swapTokensForBNB(swapTokens) (#994)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapTokensForBNB(swapTokens_scope_0) (#1006)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
External calls sending eth:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
State variables written after the call(s):
- totalTreasuryAmount = totalTreasuryAmount.add(increaseAmount_scope_2) (#1011)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in ThoreumV2._swapAndLiquify(uint256) (#1065-1090):
External calls:
- _swapTokensForBusd(half) (#1082)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1136-1142)
- _addLiquidityBusd(otherHalf,newBalance_scope_1) (#1086)
- dexRouter.addLiquidity(address(this),busdDividendToken,tokenAmount,busdAmount,0,0,treasuryWallet,block.timestamp) (#1118-1127)
Event emitted after the call(s):
- SwapAndLiquifyBusd(half,newBalance_scope_1,otherHalf) (#1088)
Reentrancy in BusdDividendTracker.claimDividend(address) (#682-691):
External calls:
- amount = _withdrawDividendOfUser(account) (#683)
- success = IERC20(dividendToken).transfer(user,_withdrawableDividend) (#506)
Event emitted after the call(s):
- Claim(account,amount) (#686)
Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _swapTokensForBNB(swapTokens) (#994)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapTokensForBNB(swapTokens_scope_0) (#1006)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
- dexRouter.addLiquidity(address(this),busdDividendToken,tokenAmount,busdAmount,0,0,treasuryWallet,block.timestamp) (#1118-1127)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1136-1142)
- _swapAndSendBusdDividends(sellTokens) (#1021)
- busdDividendTracker.distributeDividends(busdDividends) (#1176)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,_recipient,block.timestamp) (#1159-1165)
External calls sending eth:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
Event emitted after the call(s):
- SendBusdDividends(busdDividends) (#1177)
- _swapAndSendBusdDividends(sellTokens) (#1021)
- Transfer(sender,recipient,amount) (#165)
- super._transfer(from,to,amount) (#1050)
- Transfer(sender,recipient,amount) (#165)
- super._transfer(from,address(this),fees) (#1046)
- Transfer(address(this),burnAddress,tokensToBurn) (#1027)
Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _swapTokensForBNB(swapTokens) (#994)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapTokensForBNB(swapTokens_scope_0) (#1006)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
- dexRouter.addLiquidity(address(this),busdDividendToken,tokenAmount,busdAmount,0,0,treasuryWallet,block.timestamp) (#1118-1127)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1136-1142)
- _swapAndSendBusdDividends(sellTokens) (#1021)
- busdDividendTracker.distributeDividends(busdDividends) (#1176)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,_recipient,block.timestamp) (#1159-1165)
- busdDividendTracker.set2Balances(address(from),address(to),balanceOf(from),balanceOf(to)) (#1052-1062)
External calls sending eth:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
Event emitted after the call(s):
- GenericErrorEvent(_transfer(): busdDividendTracker.set2Balances() Failed) (#1060)
- GenericErrorEvent(reason) (#1061)
Reentrancy in ThoreumV2._setAutomatedMarketMakerPair(address,bool) (#907-915):
External calls:
- busdDividendTracker.excludeFromDividends(pair,value) (#911)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(pair,value) (#914)
Reentrancy in BusdDividendTracker.compoundDividend(address,address) (#693-702):
External calls:
- amount = _claimDividendOfUserToAnyToken(account,wantToken) (#694)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp) (#569-575)
- success = IERC20(_wantToken).transfer(user,thoreumRewardRemains[user]) (#539)
Event emitted after the call(s):
- Compound(account,amount) (#697)
Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (#501-519):
External calls:
- success = IERC20(dividendToken).transfer(user,_withdrawableDividend) (#506)
Event emitted after the call(s):
- DividendWithdrawn(user,_withdrawableDividend) (#512)
Reentrancy in ThoreumV2._swapAndSendBusdDividends(uint256) (#1168-1179):
External calls:
- _swapTokensForDividendToken(tokens,address(busdDividendTracker),busdDividendToken) (#1171)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,_recipient,block.timestamp) (#1159-1165)
- busdDividendTracker.distributeDividends(busdDividends) (#1176)
Event emitted after the call(s):
- SendBusdDividends(busdDividends) (#1177)
Reentrancy in DividendPayingToken._claimDividendOfUserToAnyToken(address,address) (#521-553):
External calls:
- _swapDividendTokenToAnyToken(_withdrawableDividend,dividendToken,_wantToken) (#528)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp) (#569-575)
- success = IERC20(_wantToken).transfer(user,thoreumRewardRemains[user]) (#539)
Event emitted after the call(s):
- DividendClaimedToAnyToken(user,_wantToken,_withdrawableDividend) (#545)
Reentrancy in ThoreumV2._swapAndLiquify(uint256) (#1065-1090):
External calls:
- _swapTokensForBNB(half) (#1072)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _addLiquidity(otherHalf,newBalance) (#1076)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
External calls sending eth:
- _addLiquidity(otherHalf,newBalance) (#1076)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
Event emitted after the call(s):
- SwapAndLiquify(half,newBalance,otherHalf) (#1078)
Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _swapTokensForBNB(swapTokens) (#994)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapTokensForBNB(swapTokens_scope_0) (#1006)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
- dexRouter.addLiquidity(address(this),busdDividendToken,tokenAmount,busdAmount,0,0,treasuryWallet,block.timestamp) (#1118-1127)
- dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1108-1114)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1136-1142)
External calls sending eth:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
Event emitted after the call(s):
- SwapAndLiquify(half,newBalance,otherHalf) (#1078)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- SwapAndLiquifyBusd(half,newBalance_scope_1,otherHalf) (#1088)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
Apply the check-effects-interactions pattern.

Additional information: link

BusdDividendTracker.excludeFromDividends(address,bool) (#645-660) compares to a boolean constant:
-status == true (#650)
Remove the equality to the boolean constant.

Additional information: link

SafeMathInt.div(int256,int256) (#327-333) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#272-275) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#276-279) is never used and should be removed
SafeMathInt.mul(int256,int256) (#318-326) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#254-258) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#311-314) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#307-310) is never used and should be removed
ERC20._setupDecimals(uint8) (#194-196) is never used and should be removed
Context._msgData() (#10-13) is never used and should be removed
SafeMath.mod(uint256,uint256) (#299-302) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#263-271) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#259-262) is never used and should be removed
DividendPayingToken._transfer(address,address,uint256) (#595-597) is never used and should be removed
Remove unused functions.

Additional information: link

Low level call in DividendPayingToken.retrieveBNB() (#492-499):
- (success) = address(msg.sender).call{value: amount}() (#497)
Low level call in ThoreumV2.retrieveBNB() (#946-951):
- (success) = address(msg.sender).call{value: amount}() (#949)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Parameter ThoreumV2.setSellTransactionMultiplier(uint256)._multiplier (#844) is not in mixedCase
Parameter ThoreumV2.setMarketingWallet(address)._newWallet (#820) is not in mixedCase
Function IDEXRouter.WETH() (#207) is not in mixedCase
Parameter ThoreumV2.setIsLiquidityInBnb(bool)._value (#853) is not in mixedCase
Constant DividendPayingToken.magnitude (#433) is not in UPPER_CASE_WITH_UNDERSCORES
Parameter ThoreumV2.setMaxSellTransaction(uint256)._maxTxn (#811) is not in mixedCase
Parameter ThoreumV2.setMaxBuyTransaction(uint256)._maxTxn (#807) is not in mixedCase
Parameter ThoreumV2.setSwapTokensAtAmount(uint256)._swapAmount (#840) is not in mixedCase
Parameter ThoreumV2.setFeesOnNormalTransfers(bool)._enabled (#897) is not in mixedCase
Parameter ThoreumV2.prepareForPartner(address)._partnerOrExchangeAddress (#803) is not in mixedCase
Parameter DividendPayingToken.transferAdmin(address)._newAdmin (#479) is not in mixedCase
Parameter DividendPayingToken.dividendOf(address)._owner (#578) is not in mixedCase
Parameter BusdDividendTracker.updateMinimumTokenBalanceForDividends(uint256)._newMinimumBalance (#641) is not in mixedCase
Parameter ThoreumV2.setBusdDividendToken(address)._newContract (#815) is not in mixedCase
Parameter ThoreumV2.setIsNotMigrating(bool)._value (#848) is not in mixedCase
Parameter DividendPayingToken.withdrawnDividendOf(address)._owner (#586) is not in mixedCase
Parameter DividendPayingToken.withdrawableDividendOf(address)._owner (#582) is not in mixedCase
Parameter ThoreumV2.setMaxWalletToken(uint256)._maxToken (#836) is not in mixedCase
Parameter DividendPayingToken.setOnlyCaller(address)._newCaller (#474) is not in mixedCase
Parameter DividendPayingToken.accumulativeDividendOf(address)._owner (#590) is not in mixedCase
Parameter ThoreumV2.setTreasuryWallet(address)._newWallet (#825) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (#11)" inContext (#5-14)
Remove redundant statements if they congest code but offer no value.

Additional information: link

Variable IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#212) is too similar to IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#213)
Prevent variables from having similar names.

Additional information: link

ThoreumV2.slitherConstructorVariables() (#717-1192) uses literals with too many digits:
- burnAddress = 0x0000000000000000000000000000000000000000 (#732)
ThoreumV2.slitherConstructorVariables() (#717-1192) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#733)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

ThoreumV2.deadAddress (#733) should be constant
DividendPayingToken.lastAmount (#436) should be constant
ThoreumV2.burnAddress (#732) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

get(IterableMapping.Map,address) should be declared external:
- IterableMapping.get(IterableMapping.Map,address) (#366-368)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#141-145)
getKeyAtIndex(IterableMapping.Map,uint256) should be declared external:
- IterableMapping.getKeyAtIndex(IterableMapping.Map,uint256) (#377-379)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#38-41)
decimals() should be declared external:
- ERC20.decimals() (#115-117)
dividendOf(address) should be declared external:
- DividendPayingToken.dividendOf(address) (#578-580)
getIndexOfKey(IterableMapping.Map,address) should be declared external:
- IterableMapping.getIndexOfKey(IterableMapping.Map,address) (#370-375)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#152-155)
symbol() should be declared external:
- ERC20.symbol() (#111-113)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#127-130)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#147-150)
compoundDividend(address,address) should be declared external:
- BusdDividendTracker.compoundDividend(address,address) (#693-702)
claimDividend(address) should be declared external:
- BusdDividendTracker.claimDividend(address) (#682-691)
size(IterableMapping.Map) should be declared external:
- IterableMapping.size(IterableMapping.Map) (#381-383)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#43-47)
distributeDividends(uint256) should be declared external:
- DividendPayingToken.distributeDividends(uint256) (#460-472)
name() should be declared external:
- ERC20.name() (#107-109)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- ThoreumV2.setAutomatedMarketMakerPair(address,bool) (#901-905)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#49-54)
withdrawnDividendOf(address) should be declared external:
- DividendPayingToken.withdrawnDividendOf(address) (#586-588)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#132-134)
Use the external attribute for functions never called from the contract.

Additional information: link

ThoreumV2._transfer(address,address,uint256) (#961-1063) performs a multiplication on the result of a division:
-fees = amount.mul(totalFees).div(10000) (#1035)
-fees = fees.mul(sellFeeIncreaseFactor).div(100) (#1039)
Consider ordering multiplication before division.

Additional information: link

Reentrancy in DividendPayingToken._claimDividendOfUserToAnyToken(address,address) (#521-553):
External calls:
- _swapDividendTokenToAnyToken(_withdrawableDividend,dividendToken,_wantToken) (#528)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp) (#569-575)
- success = IERC20(_wantToken).transfer(user,thoreumRewardRemains[user]) (#539)
State variables written after the call(s):
- thoreumRewardRemains[user] = 0 (#544)
Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (#501-519):
External calls:
- success = IERC20(dividendToken).transfer(user,_withdrawableDividend) (#506)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (#509)
Reentrancy in DividendPayingToken._claimDividendOfUserToAnyToken(address,address) (#521-553):
External calls:
- _swapDividendTokenToAnyToken(_withdrawableDividend,dividendToken,_wantToken) (#528)
- dexRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(_tokenAmount,0,path,address(this),block.timestamp) (#569-575)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (#534)
Apply the check-effects-interactions pattern.

Additional information: link

ThoreumV2._addLiquidity(uint256,uint256) (#1092-1101) ignores return value by dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
ThoreumV2.compound() (#929-931) ignores return value by busdDividendTracker.compoundDividend(address(msg.sender),address(this)) (#930)
ThoreumV2.setBusdDividendToken(address) (#815-818) ignores return value by IERC20(busdDividendToken).approve(address(dexRouter),2 ** 256 - 1) (#817)
DividendPayingToken.constructor(string,string,address) (#449-455) ignores return value by IERC20(dividendToken).approve(address(dexRouter),2 ** 256 - 1) (#454)
ThoreumV2._addLiquidityBusd(uint256,uint256) (#1117-1128) ignores return value by dexRouter.addLiquidity(address(this),busdDividendToken,tokenAmount,busdAmount,0,0,treasuryWallet,block.timestamp) (#1118-1127)
ThoreumV2.claim() (#925-927) ignores return value by busdDividendTracker.claimDividend(address(msg.sender)) (#926)
ThoreumV2.constructor() (#762-798) ignores return value by IERC20(busdDividendToken).approve(address(dexRouter),2 ** 256 - 1) (#795)
Ensure that all the return values of the function calls are used.

Additional information: link

DividendPayingToken.constructor(string,string,address)._token (#449) lacks a zero-check on :
- dividendToken = _token (#450)
DividendPayingToken.transferAdmin(address)._newAdmin (#479) lacks a zero-check on :
- adminAddress = _newAdmin (#481)
ThoreumV2.setMarketingWallet(address)._newWallet (#820) lacks a zero-check on :
- marketingWallet = _newWallet (#822)
ThoreumV2.setBusdDividendToken(address)._newContract (#815) lacks a zero-check on :
- busdDividendToken = _newContract (#816)
ThoreumV2.setTreasuryWallet(address)._newWallet (#825) lacks a zero-check on :
- treasuryWallet = _newWallet (#827)
DividendPayingToken.setOnlyCaller(address)._newCaller (#474) lacks a zero-check on :
- onlyCaller = _newCaller (#476)
Check that the address is not zero.

Additional information: link

Variable 'ThoreumV2._transfer(address,address,uint256).reason (#1059)' in ThoreumV2._transfer(address,address,uint256) (#961-1063) potentially used before declaration: GenericErrorEvent(reason) (#1061)
Move all variable declarations prior to any usage of the variable, and ensure that reaching a variable declaration does not depend on some conditional if it is used unconditionally.

Additional information: link

Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
State variables written after the call(s):
- totalTreasuryAmount = totalTreasuryAmount.add(increaseAmount_scope_2) (#1011)
Reentrancy in ThoreumV2._transfer(address,address,uint256) (#961-1063):
External calls:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
External calls sending eth:
- _transferToWallet(address(marketingWallet),increaseAmount) (#998)
- recipient.transfer(amount) (#1182)
- _transferToWallet(address(treasuryWallet),increaseAmount_scope_2) (#1010)
- recipient.transfer(amount) (#1182)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- dexRouter.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,treasuryWallet,block.timestamp) (#1093-1100)
State variables written after the call(s):
- _burn(address(this),tokensToBurn) (#1026)
- _balances[account] = _balances[account].sub(amount,exceeds balance) (#182)
- super._transfer(from,address(this),fees) (#1046)
- _balances[sender] = _balances[sender].sub(amount,exceeds balance) (#163)
- _balances[recipient] = _balances[recipient].add(amount) (#164)
- super._transfer(from,to,amount) (#1050)
- _balances[sender] = _balances[sender].sub(amount,exceeds balance) (#163)
- _balances[recipient] = _balances[recipient].add(amount) (#164)
- _burn(address(this),tokensToBurn) (#1026)
- _totalSupply = _totalSupply.sub(amount) (#183)
- swapping = false (#1030)
Event emitted after the call(s):
- GenericErrorEvent(_transfer(): busdDividendTracker.set2Balances() Failed) (#1060)
- GenericErrorEvent(reason) (#1061)
- SendBusdDividends(busdDividends) (#1177)
- _swapAndSendBusdDividends(sellTokens) (#1021)
- SwapAndLiquify(half,newBalance,otherHalf) (#1078)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- SwapAndLiquifyBusd(half,newBalance_scope_1,otherHalf) (#1088)
- _swapAndLiquify(contractTokenBalance.mul(liquidityFee).div(totalFees)) (#1016)
- Transfer(sender,recipient,amount) (#165)
- super._transfer(from,to,amount) (#1050)
- Transfer(sender,recipient,amount) (#165)
- super._transfer(from,address(this),fees) (#1046)
- Transfer(address(this),burnAddress,tokensToBurn) (#1027)
Apply the check-effects-interactions pattern.

Additional information: link

DividendPayingToken.lastAmount (#436) is never used in BusdDividendTracker (#626-715)
Remove unused state variables.

Additional information: link

Holders:


Attempt to swap token was unsuccessful. For some reason it is untradeable. If token is not in presale stage and is not traded outside PancakeSwap, then it's a scam

Additional information: link


Average 30d PancakeSwap liquidity is less than $100. Token is either dead or inactive.


Average 30d number of PancakeSwap swaps is less than 1. Token is either dead or inactive.


Token is deployed only at one blockchain


Unable to find Youtube account


Unable to find Discord account


Unable to find token contract audit


Token is not listed at Mobula.Finance

Additional information: link


Unable to find Telegram link on the website


Unable to find Twitter link on the website


Token is marked as scam (rug pull, honeypot, phishing, etc.)

Additional information: link


Token has relatively low CoinGecko rank

Price for THOREUM

News for THOREUM