SILVA Token is a unique service that allows individuals to make payments from the comfort of their home in fiat currencies or crypto-currencies, to multiple online and offline stores. SILVA Token is a multi-functional platform which allows each participant to keep money in a multi-currency online wallet, buy and sell currency on the exchange, invest money, get a huge benefit in a convenient currency.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in SILVATOKEN._transfer(address,address,uint256) (#899-933):
External calls:
- swapAndLiquify(contractTokenBalance) (#920)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#759-765)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#920)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#855)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#949)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#954)
- _rOwned[_burnAddr] = _rOwned[_burnAddr].add(rFees[0]) (#961)
- _rOwned[_teamAddr] = _rOwned[_teamAddr].add(rFees[1]) (#962)
- _rOwned[_marketingAddr] = _rOwned[_marketingAddr].add(rFees[2]) (#963)
- _rOwned[_devAddr] = _rOwned[_devAddr].add(rFees[3]) (#964)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _rTotal = _rTotal.sub(rFee) (#787)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity) (#857)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#951)
- _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount) (#956)
Apply the check-effects-interactions pattern.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#301) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#302)
Variable SILVATOKEN.reflectionFromToken(uint256,bool).rTransferAmount (#701) is too similar to SILVATOKEN._tokenTransfer(address,address,uint256,bool).tTransferAmount (#945)
Variable SILVATOKEN._getValues(uint256).rTransferAmount (#792) is too similar to SILVATOKEN._tokenTransfer(address,address,uint256,bool).tTransferAmount (#945)
Variable SILVATOKEN._getRValues(uint256,uint256,uint256,uint256[4],uint256).rTransferAmount (#830) is too similar to SILVATOKEN._tokenTransfer(address,address,uint256,bool).tTransferAmount (#945)
Variable SILVATOKEN._getValues(uint256).rTransferAmount (#792) is too similar to SILVATOKEN._getValues(uint256).tTransferAmount (#793)
Variable SILVATOKEN._tokenTransfer(address,address,uint256,bool).rTransferAmount (#942) is too similar to SILVATOKEN._tokenTransfer(address,address,uint256,bool).tTransferAmount (#945)
Variable SILVATOKEN.reflectionFromToken(uint256,bool).rTransferAmount (#701) is too similar to SILVATOKEN._getValues(uint256).tTransferAmount (#793)
Variable SILVATOKEN._tokenTransfer(address,address,uint256,bool).rTransferAmount (#942) is too similar to SILVATOKEN._getValues(uint256).tTransferAmount (#793)
Variable SILVATOKEN._getRValues(uint256,uint256,uint256,uint256[4],uint256).rTransferAmount (#830) is too similar to SILVATOKEN._getValues(uint256).tTransferAmount (#793)
Variable SILVATOKEN._getValues(uint256).rTransferAmount (#792) is too similar to SILVATOKEN._getTValues(uint256).tTransferAmount (#813)
Variable SILVATOKEN._getRValues(uint256,uint256,uint256,uint256[4],uint256).rTransferAmount (#830) is too similar to SILVATOKEN._getTValues(uint256).tTransferAmount (#813)
Variable SILVATOKEN._tokenTransfer(address,address,uint256,bool).rTransferAmount (#942) is too similar to SILVATOKEN._getTValues(uint256).tTransferAmount (#813)
Variable SILVATOKEN.reflectionFromToken(uint256,bool).rTransferAmount (#701) is too similar to SILVATOKEN._getTValues(uint256).tTransferAmount (#813)
Prevent variables from having similar names.
Additional information: link
SILVATOKEN.addLiquidity(uint256,uint256) (#768-781) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
Ensure that all the return values of the function calls are used.
Additional information: link
SILVATOKEN.calculateLiquidityFee(uint256) (#625-627) performs a multiplication on the result of a division:
-_amount.div(_percentFactor).mul(_liquidityFee) (#626)
SILVATOKEN.calculateTaxFee(uint256) (#633-635) performs a multiplication on the result of a division:
-_amount.div(_percentFactor).mul(_taxFee) (#634)
SILVATOKEN.calculateBurnFee(uint256) (#645-647) performs a multiplication on the result of a division:
-_amount.div(_percentFactor).mul(_burnFee) (#646)
SILVATOKEN.calculateTeamFee(uint256) (#657-659) performs a multiplication on the result of a division:
-_amount.div(_percentFactor).mul(_teamFee) (#658)
SILVATOKEN.calculateMarketingFee(uint256) (#669-671) performs a multiplication on the result of a division:
-_amount.div(_percentFactor).mul(_marketingFee) (#670)
SILVATOKEN.calculateDevFee(uint256) (#681-683) performs a multiplication on the result of a division:
-_amount.div(_percentFactor).mul(_devFee) (#682)
Consider ordering multiplication before division.
Additional information: link
Ownable.setTime() (#209-214) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked until 7 days) (#211)
Avoid relying on block.timestamp.
Additional information: link
SILVATOKEN.allowance(address,address).owner (#555) shadows:
- Ownable.owner() (#173-175) (function)
SILVATOKEN._approve(address,address,uint256).owner (#887) shadows:
- Ownable.owner() (#173-175) (function)
Rename the local variables that shadow another component.
Additional information: link
SILVATOKEN.setLiquidityFeePercent(uint256) (#621-623) should emit an event for:
- _liquidityFee = liquidityFee (#622)
SILVATOKEN.setTaxFeePercent(uint256) (#629-631) should emit an event for:
- _taxFee = taxFee (#630)
SILVATOKEN.setBurnFeePercent(uint256) (#637-639) should emit an event for:
- _burnFee = burnFee (#638)
SILVATOKEN.setTeamFeePercent(uint256) (#649-651) should emit an event for:
- _teamFee = teamFee (#650)
SILVATOKEN.setMarketingFeePercent(uint256) (#661-663) should emit an event for:
- _marketingFee = marketingFee (#662)
SILVATOKEN.setDevFeePercent(uint256) (#673-675) should emit an event for:
- _devFee = devFee (#674)
SILVATOKEN.setMaxTxPercent(uint256) (#686-688) should emit an event for:
- _maxTxAmount = _tTotal.mul(maxTxPercent).div(_percentFactor) (#687)
Emit an event for critical parameter changes.
Additional information: link
Ownable.constructor().msgSender (#164) lacks a zero-check on :
- _owner = msgSender (#165)
- _previousOwner = msgSender (#166)
SILVATOKEN.constructor(address).pancakeRouter (#506) lacks a zero-check on :
- routerAddress = pancakeRouter (#507)
SILVATOKEN.setBurnAddress(address).burnAddr (#641) lacks a zero-check on :
- _burnAddr = burnAddr (#642)
SILVATOKEN.setTeamAddress(address).teamAddr (#653) lacks a zero-check on :
- _teamAddr = teamAddr (#654)
SILVATOKEN.setMarketingAddress(address).marketingAddr (#665) lacks a zero-check on :
- _marketingAddr = marketingAddr (#666)
SILVATOKEN.setDevAddress(address).devAddr (#677) lacks a zero-check on :
- _devAddr = devAddr (#678)
Check that the address is not zero.
Additional information: link
Reentrancy in SILVATOKEN._transfer(address,address,uint256) (#899-933):
External calls:
- swapAndLiquify(contractTokenBalance) (#920)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#759-765)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#920)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _burnFee = _previousBurnFee (#881)
- _burnFee = 0 (#872)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _devFee = _previousDevFee (#884)
- _devFee = 0 (#875)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _liquidityFee = _previousLiquidityFee (#880)
- _liquidityFee = 0 (#871)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _marketingFee = _previousMarketingFee (#883)
- _marketingFee = 0 (#874)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _previousBurnFee = _burnFee (#865)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _previousDevFee = _devFee (#868)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _previousLiquidityFee = _liquidityFee (#864)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _previousMarketingFee = _marketingFee (#867)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _previousTaxFee = _taxFee (#863)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _previousTeamFee = _teamFee (#866)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _tFeeTotal = _tFeeTotal.add(tFee) (#788)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _taxFee = _previousTaxFee (#879)
- _taxFee = 0 (#870)
- _tokenTransfer(from,to,amount,takeFee) (#932)
- _teamFee = _previousTeamFee (#882)
- _teamFee = 0 (#873)
Reentrancy in SILVATOKEN.constructor(address) (#506-527):
External calls:
- uniswapV2Pair = IExchangeFactory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#512)
State variables written after the call(s):
- _burnAddr = owner() (#521)
- _devAddr = owner() (#524)
- _isExcludedFromFee[owner()] = true (#518)
- _isExcludedFromFee[address(this)] = true (#519)
- _marketingAddr = owner() (#523)
- _teamAddr = owner() (#522)
- uniswapV2Router = _uniswapV2Router (#515)
Reentrancy in SILVATOKEN.swapAndLiquify(uint256) (#727-748):
External calls:
- swapTokensForEth(half) (#739)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#759-765)
- addLiquidity(otherHalf,newBalance) (#745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#745)
- _allowances[spender][owner] = amount (#892)
- _allowances[owner][spender] = amount (#894)
Reentrancy in SILVATOKEN.transferFrom(address,address,uint256) (#564-568):
External calls:
- _transfer(sender,recipient,amount) (#565)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#759-765)
External calls sending eth:
- _transfer(sender,recipient,amount) (#565)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#566)
- _allowances[spender][owner] = amount (#892)
- _allowances[owner][spender] = amount (#894)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SILVATOKEN._transfer(address,address,uint256) (#899-933):
External calls:
- swapAndLiquify(contractTokenBalance) (#920)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#759-765)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#920)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#966)
- _tokenTransfer(from,to,amount,takeFee) (#932)
Reentrancy in SILVATOKEN.constructor(address) (#506-527):
External calls:
- uniswapV2Pair = IExchangeFactory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#512)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#526)
Reentrancy in SILVATOKEN.swapAndLiquify(uint256) (#727-748):
External calls:
- swapTokensForEth(half) (#739)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#759-765)
- addLiquidity(otherHalf,newBalance) (#745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#745)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#895)
- addLiquidity(otherHalf,newBalance) (#745)
- SwapAndLiquify(half,newBalance,otherHalf) (#747)
Reentrancy in SILVATOKEN.transferFrom(address,address,uint256) (#564-568):
External calls:
- _transfer(sender,recipient,amount) (#565)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#759-765)
External calls sending eth:
- _transfer(sender,recipient,amount) (#565)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#773-780)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#895)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#566)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#92-99) uses assembly
- INLINE ASM (#97)
Address._functionCallWithValue(address,bytes,uint256,string) (#126-147) uses assembly
- INLINE ASM (#139-142)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#126-147) is never used and should be removed
Address.functionCall(address,bytes) (#109-111) is never used and should be removed
Address.functionCall(address,bytes,string) (#113-115) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#117-119) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#121-124) is never used and should be removed
Address.isContract(address) (#92-99) is never used and should be removed
Address.sendValue(address,uint256) (#101-107) is never used and should be removed
Context._msgData() (#81-84) is never used and should be removed
SafeMath.mod(uint256,uint256) (#61-63) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#65-68) is never used and should be removed
Remove unused functions.
Additional information: link
SILVATOKEN._rTotal (#448) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
SILVATOKEN._previousTaxFee (#458) is set pre-construction with a non-constant function or state variable:
- _taxFee
SILVATOKEN._previousLiquidityFee (#461) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
SILVATOKEN._previousBurnFee (#464) is set pre-construction with a non-constant function or state variable:
- _burnFee
SILVATOKEN._previousTeamFee (#468) is set pre-construction with a non-constant function or state variable:
- _teamFee
SILVATOKEN._previousMarketingFee (#472) is set pre-construction with a non-constant function or state variable:
- _marketingFee
SILVATOKEN._previousDevFee (#476) is set pre-construction with a non-constant function or state variable:
- _devFee
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#101-107):
- (success) = recipient.call{value: amount}() (#105)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#126-147):
- (success,returndata) = target.call{value: weiValue}(data) (#130)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#257) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#258) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#275) is not in mixedCase
Function IUniswapV2Router01.WETH() (#296) is not in mixedCase
Parameter SILVATOKEN.calculateLiquidityFee(uint256)._amount (#625) is not in mixedCase
Parameter SILVATOKEN.calculateTaxFee(uint256)._amount (#633) is not in mixedCase
Parameter SILVATOKEN.calculateBurnFee(uint256)._amount (#645) is not in mixedCase
Parameter SILVATOKEN.calculateTeamFee(uint256)._amount (#657) is not in mixedCase
Parameter SILVATOKEN.calculateMarketingFee(uint256)._amount (#669) is not in mixedCase
Parameter SILVATOKEN.calculateDevFee(uint256)._amount (#681) is not in mixedCase
Parameter SILVATOKEN.setSwapAndLiquifyEnabled(bool)._enabled (#722) is not in mixedCase
Constant SILVATOKEN._percentFactor (#455) is not in UPPER_CASE_WITH_UNDERSCORES
Variable SILVATOKEN._taxFee (#457) is not in mixedCase
Variable SILVATOKEN._liquidityFee (#460) is not in mixedCase
Variable SILVATOKEN._burnFee (#463) is not in mixedCase
Variable SILVATOKEN._burnAddr (#465) is not in mixedCase
Variable SILVATOKEN._teamFee (#467) is not in mixedCase
Variable SILVATOKEN._teamAddr (#469) is not in mixedCase
Variable SILVATOKEN._marketingFee (#471) is not in mixedCase
Variable SILVATOKEN._marketingAddr (#473) is not in mixedCase
Variable SILVATOKEN._devFee (#475) is not in mixedCase
Variable SILVATOKEN._devAddr (#477) is not in mixedCase
Variable SILVATOKEN._maxTxAmount (#486) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#82)" inContext (#76-85)
Remove redundant statements if they congest code but offer no value.
Additional information: link
SILVATOKEN._decimals (#453) should be constant
SILVATOKEN._name (#451) should be constant
SILVATOKEN._symbol (#452) should be constant
SILVATOKEN._tTotal (#447) should be constant
SILVATOKEN.numTokensSellToAddToLiquidity (#488) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#185-188)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#190-195)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#197-199)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#202-207)
setTime() should be declared external:
- Ownable.setTime() (#209-214)
contractVersion() should be declared external:
- Versionable.contractVersion() (#219-221)
name() should be declared external:
- SILVATOKEN.name() (#529-531)
symbol() should be declared external:
- SILVATOKEN.symbol() (#533-535)
decimals() should be declared external:
- SILVATOKEN.decimals() (#537-539)
totalSupply() should be declared external:
- SILVATOKEN.totalSupply() (#541-543)
transfer(address,uint256) should be declared external:
- SILVATOKEN.transfer(address,uint256) (#550-553)
allowance(address,address) should be declared external:
- SILVATOKEN.allowance(address,address) (#555-557)
approve(address,uint256) should be declared external:
- SILVATOKEN.approve(address,uint256) (#559-562)
transferFrom(address,address,uint256) should be declared external:
- SILVATOKEN.transferFrom(address,address,uint256) (#564-568)
increaseAllowance(address,uint256) should be declared external:
- SILVATOKEN.increaseAllowance(address,uint256) (#570-573)
decreaseAllowance(address,uint256) should be declared external:
- SILVATOKEN.decreaseAllowance(address,uint256) (#575-578)
isExcludedFromReward(address) should be declared external:
- SILVATOKEN.isExcludedFromReward(address) (#581-583)
excludeFromReward(address) should be declared external:
- SILVATOKEN.excludeFromReward(address) (#585-593)
isExcludedFromFee(address) should be declared external:
- SILVATOKEN.isExcludedFromFee(address) (#609-611)
excludeFromFee(address) should be declared external:
- SILVATOKEN.excludeFromFee(address) (#613-615)
includeInFee(address) should be declared external:
- SILVATOKEN.includeInFee(address) (#617-619)
totalFees() should be declared external:
- SILVATOKEN.totalFees() (#691-693)
reflectionFromToken(uint256,bool) should be declared external:
- SILVATOKEN.reflectionFromToken(uint256,bool) (#695-704)
deliver(uint256) should be declared external:
- SILVATOKEN.deliver(uint256) (#712-719)
setSwapAndLiquifyEnabled(bool) should be declared external:
- SILVATOKEN.setSwapAndLiquifyEnabled(bool) (#722-725)
Use the external attribute for functions never called from the contract.
Additional information: link
SILVATOKEN.includeInReward(address) (#595-606) has costly operations inside a loop:
- _excluded.pop() (#602)
Use a local variable to hold the loop computation result.
Additional information: link
Swap operations require suspiciously high gas. Contract logic is complex and may disguise some form of scam.
Token is deployed only at one blockchain
Contract has 10% buy tax and 10% sell tax.
Taxes are low but contract ownership is not renounced. Token has a high risk of becoming a honeypot.
Unable to find token contract audit
Unable to find audit link on the website
Token is not listed at Mobula.Finance
Additional information: link
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Twitter account link seems to be invalid
Unable to find Blog account (Reddit or Medium)
Unable to find Discord account