Crypto Revolution in the sporting industry.
Use your knowledge and the blockchain to your advantage.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in AggleToken._transfer(address,address,uint256) (#1642-1773):
External calls:
- swapBack() (#1728)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1784-1790)
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- (success,None) = address(buyBackWallet).call{value: address(this).balance}() (#1840)
External calls sending eth:
- swapBack() (#1728)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- (success,None) = address(buyBackWallet).call{value: address(this).balance}() (#1840)
State variables written after the call(s):
- super._transfer(from,address(this),fees) (#1766)
- _balances[sender] = senderBalance - amount (#371)
- _balances[recipient] += amount (#373)
- super._transfer(from,to,amount) (#1772)
- _balances[sender] = senderBalance - amount (#371)
- _balances[recipient] += amount (#373)
- swapping = false (#1730)
- tokensForBuyBack += fees * 33 / 99 (#1747)
- tokensForBuyBack += fees * sellBuyBackFee / sellTotalFees (#1754)
- tokensForBuyBack += fees * buyBuyBackFee / buyTotalFees (#1761)
- tokensForLiquidity += fees * 33 / 99 (#1746)
- tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees (#1753)
- tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees (#1760)
- tokensForMarketing += fees * 33 / 99 (#1748)
- tokensForMarketing += fees * sellMarketingFee / sellTotalFees (#1755)
- tokensForMarketing += fees * buyMarketingFee / buyTotalFees (#1762)
Apply the check-effects-interactions pattern.
Additional information: link
AggleToken.decreaseTax(uint256,uint256,uint256) (#1471-1477) should emit an event for:
- _percent = percent (#1474)
- _perBlock = perBlock (#1475)
- _limit = limit (#1476)
AggleToken.setTransferDelayBlocks(uint256) (#1517-1520) should emit an event for:
- transferDelayBlocks = newTransferDelayBlocks (#1518)
AggleToken.setBlackListFee(uint256) (#1546-1550) should emit an event for:
- blackListFee = _fee (#1548)
AggleToken.setSwapTokensAtAmount(uint256) (#1559-1562) should emit an event for:
- swapTokensAtAmount = newAmount (#1560)
AggleToken.setMaxTransactionAmount(uint256,uint256) (#1564-1568) should emit an event for:
- maxBuyTransactionAmount = newBuyNum * 1000000000000000000 (#1566)
- maxSellTransactionAmount = newSellNum * 1000000000000000000 (#1567)
AggleToken.setBuyFees(uint256,uint256,uint256) (#1580-1590) should emit an event for:
- buyMarketingFee = _marketingFee (#1581)
- buyLiquidityFee = _liquidityFee (#1582)
- buyBuyBackFee = _buyBackFee (#1583)
- buyTotalFees = buyMarketingFee + buyLiquidityFee + buyBuyBackFee (#1584)
- _limit = const10.sub(_liquidityFee) (#1588)
AggleToken.setSellFees(uint256,uint256,uint256) (#1592-1597) should emit an event for:
- sellMarketingFee = _marketingFee (#1593)
- sellLiquidityFee = _liquidityFee (#1594)
- sellBuyBackFee = _buyBackFee (#1595)
- sellTotalFees = sellMarketingFee + sellLiquidityFee + sellBuyBackFee (#1596)
Emit an event for critical parameter changes.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#1188) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#1189)
Prevent variables from having similar names.
Additional information: link
Contract name (aggle.io) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.
Pragma version^0.8.0 (#7) allows old versions
Pragma version^0.8.0 (#91) allows old versions
Pragma version^0.8.0 (#119) allows old versions
Pragma version^0.8.0 (#145) allows old versions
Pragma version^0.8.0 (#499) allows old versions
Pragma version^0.8.0 (#718) allows old versions
Pragma version^0.8.0 (#817) allows old versions
Pragma version^0.8.0 (#889) allows old versions
Pragma version^0.8.0 (#1118) allows old versions
Pragma version>0.6.0 (#1163) allows old versions
Pragma version^0.8.0 (#1322) allows old versions
solc-0.8.9 is not recommended for deployment
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-deductAmount = curBlockNumber.sub(_prevUpdatedBlock).div(_perBlock) * _percent (#1666)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-fees = amount.mul(99).div(100) (#1745)
-tokensForLiquidity += fees * 33 / 99 (#1746)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-fees = amount.mul(99).div(100) (#1745)
-tokensForBuyBack += fees * 33 / 99 (#1747)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-fees = amount.mul(99).div(100) (#1745)
-tokensForMarketing += fees * 33 / 99 (#1748)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees (#1753)
-fees = amount.mul(buyTotalFees).div(100) (#1759)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-fees = amount.mul(buyTotalFees).div(100) (#1759)
-tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees (#1760)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-tokensForBuyBack += fees * sellBuyBackFee / sellTotalFees (#1754)
-fees = amount.mul(buyTotalFees).div(100) (#1759)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-fees = amount.mul(buyTotalFees).div(100) (#1759)
-tokensForBuyBack += fees * buyBuyBackFee / buyTotalFees (#1761)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-tokensForMarketing += fees * sellMarketingFee / sellTotalFees (#1755)
-fees = amount.mul(buyTotalFees).div(100) (#1759)
AggleToken._transfer(address,address,uint256) (#1642-1773) performs a multiplication on the result of a division:
-fees = amount.mul(buyTotalFees).div(100) (#1759)
-tokensForMarketing += fees * buyMarketingFee / buyTotalFees (#1762)
AggleToken.swapBack() (#1808-1841) performs a multiplication on the result of a division:
-liquidityTokens = contractBalance * (tokensForLiquidity / totalTokensToSwap) / 2 (#1815)
Consider ordering multiplication before division.
Additional information: link
Reentrancy in AggleToken.constructor() (#1416-1465):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1425)
State variables written after the call(s):
- transferOwnership(newOwner) (#1464)
- _owner = newOwner (#880)
Reentrancy in AggleToken.swapBack() (#1808-1841):
External calls:
- swapTokensForEth(amountToSwapForETH) (#1820)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1784-1790)
State variables written after the call(s):
- tokensForBuyBack = 0 (#1831)
- tokensForLiquidity = 0 (#1829)
- tokensForMarketing = 0 (#1830)
Apply the check-effects-interactions pattern.
Additional information: link
AggleToken._transfer(address,address,uint256) (#1642-1773) uses tx.origin for authorization: require(bool,string)(_holderLastTransferTimestamp[tx.origin] + transferDelayBlocks < block.number,_transfer:: Transfer too soon, please wait for a couple of blocks.) (#1700)
Do not use tx.origin for authorization.
Additional information: link
AggleToken.addLiquidity(uint256,uint256) (#1793-1806) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
Ensure that all the return values of the function calls are used.
Additional information: link
AggleToken.constructor().totalSupply (#1432) shadows:
- ERC20.totalSupply() (#231-233) (function)
- IERC20.totalSupply() (#16) (function)
Rename the local variables that shadow another component.
Additional information: link
AggleToken.setMarketingWallet(address).newMarketingWallet (#1616) lacks a zero-check on :
- marketingWallet = newMarketingWallet (#1618)
AggleToken.setBuyBackWallet(address).newWallet (#1621) lacks a zero-check on :
- buyBackWallet = newWallet (#1623)
AggleToken.clearStuckBNBBalance(address).addr (#1626) lacks a zero-check on :
- (sent) = address(addr).call{value: (address(this).balance)}() (#1627)
Check that the address is not zero.
Additional information: link
Reentrancy in AggleToken.constructor() (#1416-1465):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1425)
State variables written after the call(s):
- _mint(newOwner,totalSupply) (#1463)
- _balances[account] += amount (#395)
- _isExcludedFromContractBuyingLimit[address(this)] = true (#1455)
- _isExcludedFromContractBuyingLimit[0x10ED43C718714eb63d5aA57B78B54704E256024E] = true (#1456)
- _isExcludedFromContractBuyingLimit[address(uniswapV2Pair)] = true (#1457)
- excludeFromFees(newOwner,true) (#1445)
- _isExcludedFromFees[account] = excluded (#1600)
- excludeFromFees(address(this),true) (#1446)
- _isExcludedFromFees[account] = excluded (#1600)
- excludeFromFees(address(0xdead),true) (#1447)
- _isExcludedFromFees[account] = excluded (#1600)
- excludeFromFees(buyBackWallet,true) (#1448)
- _isExcludedFromFees[account] = excluded (#1600)
- excludeFromMaxTransaction(address(uniswapV2Pair),true) (#1426)
- _isExcludedMaxTransactionAmount[updAds] = isEx (#1571)
- excludeFromMaxTransaction(newOwner,true) (#1450)
- _isExcludedMaxTransactionAmount[updAds] = isEx (#1571)
- excludeFromMaxTransaction(address(this),true) (#1451)
- _isExcludedMaxTransactionAmount[updAds] = isEx (#1571)
- excludeFromMaxTransaction(buyBackWallet,true) (#1452)
- _isExcludedMaxTransactionAmount[updAds] = isEx (#1571)
- excludeFromMaxTransaction(address(0xdead),true) (#1453)
- _isExcludedMaxTransactionAmount[updAds] = isEx (#1571)
- _mint(newOwner,totalSupply) (#1463)
- _totalSupply += amount (#394)
- _setAutomatedMarketMakerPair(address(uniswapV2Pair),true) (#1427)
- automatedMarketMakerPairs[pair] = value (#1611)
- blackListFee = 99 (#1439)
- buyBackWallet = msg.sender (#1442)
- marketingWallet = msg.sender (#1441)
- maxBuyTransactionAmount = 400_000 * 1000000000000000000 (#1434)
- maxSellTransactionAmount = 200_000 * 1000000000000000000 (#1435)
- swapTokensAtAmount = 1000 * 1000000000000000000 (#1437)
Reentrancy in AggleToken.swapBack() (#1808-1841):
External calls:
- swapTokensForEth(amountToSwapForETH) (#1820)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1784-1790)
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- addLiquidity(liquidityTokens,ethForLiquidity) (#1835)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
External calls sending eth:
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- addLiquidity(liquidityTokens,ethForLiquidity) (#1835)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
State variables written after the call(s):
- addLiquidity(liquidityTokens,ethForLiquidity) (#1835)
- _allowances[owner][spender] = amount (#450)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in AggleToken._transfer(address,address,uint256) (#1642-1773):
External calls:
- swapBack() (#1728)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1784-1790)
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- (success,None) = address(buyBackWallet).call{value: address(this).balance}() (#1840)
External calls sending eth:
- swapBack() (#1728)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- (success,None) = address(buyBackWallet).call{value: address(this).balance}() (#1840)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#375)
- super._transfer(from,address(this),fees) (#1766)
- Transfer(sender,recipient,amount) (#375)
- super._transfer(from,to,amount) (#1772)
Reentrancy in AggleToken.buyBackTokens(uint256) (#1844-1858):
External calls:
- uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: bnbAmountInWei}(0,path,address(0xdead),block.timestamp) (#1851-1856)
Event emitted after the call(s):
- BuyBackTriggered(bnbAmountInWei) (#1857)
Reentrancy in AggleToken.constructor() (#1416-1465):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1425)
Event emitted after the call(s):
- ExcludeFromFees(account,excluded) (#1601)
- excludeFromFees(address(this),true) (#1446)
- ExcludeFromFees(account,excluded) (#1601)
- excludeFromFees(newOwner,true) (#1445)
- ExcludeFromFees(account,excluded) (#1601)
- excludeFromFees(buyBackWallet,true) (#1448)
- ExcludeFromFees(account,excluded) (#1601)
- excludeFromFees(address(0xdead),true) (#1447)
- OwnershipTransferred(oldOwner,newOwner) (#881)
- transferOwnership(newOwner) (#1464)
- SetAutomatedMarketMakerPair(pair,value) (#1613)
- _setAutomatedMarketMakerPair(address(uniswapV2Pair),true) (#1427)
- Transfer(address(0),account,amount) (#396)
- _mint(newOwner,totalSupply) (#1463)
Reentrancy in AggleToken.swapBack() (#1808-1841):
External calls:
- swapTokensForEth(amountToSwapForETH) (#1820)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1784-1790)
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- addLiquidity(liquidityTokens,ethForLiquidity) (#1835)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
External calls sending eth:
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- addLiquidity(liquidityTokens,ethForLiquidity) (#1835)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,deadAddress,block.timestamp) (#1798-1805)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#451)
- addLiquidity(liquidityTokens,ethForLiquidity) (#1835)
- SwapAndLiquify(amountToSwapForETH,ethForLiquidity,tokensForLiquidity) (#1836)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#522-532) uses assembly
- INLINE ASM (#528-530)
Address.verifyCallResult(bool,bytes,string) (#691-711) uses assembly
- INLINE ASM (#703-706)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>0.6.0', '^0.8.0']
- ^0.8.0 (#7)
- ^0.8.0 (#91)
- ^0.8.0 (#119)
- ^0.8.0 (#145)
- ^0.8.0 (#499)
- ^0.8.0 (#718)
- ^0.8.0 (#817)
- ^0.8.0 (#889)
- ^0.8.0 (#1118)
- >0.6.0 (#1163)
- ^0.8.0 (#1322)
- ABIEncoderV2 (#1323)
Use one Solidity version.
Additional information: link
Address.functionCall(address,bytes) (#575-577) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#604-610) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#664-666) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#674-683) is never used and should be removed
Address.functionStaticCall(address,bytes) (#637-639) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#647-656) is never used and should be removed
Address.sendValue(address,uint256) (#550-555) is never used and should be removed
Context._msgData() (#136-138) is never used and should be removed
Counters.current(Counters.Counter) (#1136-1138) is never used and should be removed
Counters.decrement(Counters.Counter) (#1146-1152) is never used and should be removed
Counters.increment(Counters.Counter) (#1140-1144) is never used and should be removed
Counters.reset(Counters.Counter) (#1154-1156) is never used and should be removed
ERC20._burn(address,uint256) (#412-427) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (#757-770) is never used and should be removed
SafeERC20.safeDecreaseAllowance(IERC20,address,uint256) (#781-792) is never used and should be removed
SafeERC20.safeIncreaseAllowance(IERC20,address,uint256) (#772-779) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (#741-748) is never used and should be removed
SafeMath.add(uint256,uint256) (#978-980) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#1076-1085) is never used and should be removed
SafeMath.mod(uint256,uint256) (#1036-1038) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#1102-1111) is never used and should be removed
SafeMath.sub(uint256,uint256,string) (#1053-1062) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#907-913) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#949-954) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#961-966) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#932-942) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#920-925) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#550-555):
- (success) = recipient.call{value: amount}() (#553)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#618-629):
- (success,returndata) = target.call{value: value}(data) (#627)
Low level call in Address.functionStaticCall(address,bytes,string) (#647-656):
- (success,returndata) = target.staticcall(data) (#654)
Low level call in Address.functionDelegateCall(address,bytes,string) (#674-683):
- (success,returndata) = target.delegatecall(data) (#681)
Low level call in AggleToken.clearStuckBNBBalance(address) (#1626-1629):
- (sent) = address(addr).call{value: (address(this).balance)}() (#1627)
Low level call in AggleToken.swapBack() (#1808-1841):
- (success) = address(marketingWallet).call{value: ethForMarketing}() (#1833)
- (success,None) = address(buyBackWallet).call{value: address(this).balance}() (#1840)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Router01.WETH() (#1183) is not in mixedCase
Event AggleTokenmarketingWalletUpdated(address,address) (#1404) is not in CapWords
Event AggleTokenbuyBackWalletUpdated(address,address) (#1406) is not in CapWords
Parameter AggleToken.setBlackListFee(uint256)._fee (#1546) is not in mixedCase
Parameter AggleToken.setBuyFees(uint256,uint256,uint256)._marketingFee (#1580) is not in mixedCase
Parameter AggleToken.setBuyFees(uint256,uint256,uint256)._liquidityFee (#1580) is not in mixedCase
Parameter AggleToken.setBuyFees(uint256,uint256,uint256)._buyBackFee (#1580) is not in mixedCase
Parameter AggleToken.setSellFees(uint256,uint256,uint256)._marketingFee (#1592) is not in mixedCase
Parameter AggleToken.setSellFees(uint256,uint256,uint256)._liquidityFee (#1592) is not in mixedCase
Parameter AggleToken.setSellFees(uint256,uint256,uint256)._buyBackFee (#1592) is not in mixedCase
Constant AggleToken.deadAddress (#1331) is not in UPPER_CASE_WITH_UNDERSCORES
Variable AggleToken._isExcludedMaxTransactionAmount (#1371) is not in mixedCase
Variable AggleToken._isExcludedFromContractBuyingLimit (#1372) is not in mixedCase
Variable AggleToken._decreasing (#1383) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
name() should be declared external:
- ERC20.name() (#199-201)
symbol() should be declared external:
- ERC20.symbol() (#207-209)
decimals() should be declared external:
- ERC20.decimals() (#224-226)
totalSupply() should be declared external:
- ERC20.totalSupply() (#231-233)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#250-253)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#258-260)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#269-272)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#287-301)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#315-318)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#334-342)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#865-867)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- AggleToken.setAutomatedMarketMakerPair(address,bool) (#1604-1608)
isExcludedFromFees(address) should be declared external:
- AggleToken.isExcludedFromFees(address) (#1636-1638)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find token contract audit
Unable to find audit link on the website
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
Young tokens have high risks of price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Last post in Twitter was more than 30 days ago