Welcome to Saiyan, a community-driven platform that aims to help people with financial well-being by giving them control of their finances and the opportunity to create wealth for themselves. Our medium is $SAIYAN, a crypto currency built on Binance’s smart-chain (BEP-20) with a smart code that makes it a safe investment as well as a beneficial asset to hold.
✅ Reputable Safe Dev (366x on a Stealth Launch)
🔰 KYC VERIFIED
📜 First Audit Completed
💰Staking
👾 NFT Launchpad
🔒 Liquidity Locked
💼 De-Fi Wallet (Integrations with DApps)
🚀 Big Marketing Wallet
📊 Tokenomics
50% Pre-Sale Pancakeswap Listing
30% Staking (VESTED TILL LIVE)
10% Private Sale
5% Burn
5% Initial Liquidity
📤 Circulating Supply
Total Supply: 1,000,000,000
Max wallet 10,000,000 (1%)
Max TXN: 5,000,000 (0.5%)
10% tax is charged on each transaction.
This will be divided into 4 parts;
👝 Marketing Wallet (4%)
🌊 Liquidity (3%)
🔥 Burns (2%)
💰 Reflection to Holders (1%)
SAIYAN.addLiquidity(uint256,uint256) (#494-507) sends eth to arbitrary user
Dangerous calls:
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in SAIYAN._transfer(address,address,uint256) (#416-433):
External calls:
- swapAndLiquify(swapTokensAtAmount) (#429)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#518-524)
- address(marketingWallet).sendValue(marketingAmt) (#489)
External calls sending eth:
- swapAndLiquify(swapTokensAtAmount) (#429)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,! (_isExcludedFromFee[from] || _isExcludedFromFee[to])) (#432)
- _rOwned[address(this)] += rMarketing (#342)
- _rOwned[address(this)] += rLiquidity (#332)
- _rOwned[deadAddress] += rBurn (#352)
- _rOwned[sender] = _rOwned[sender] - s.rAmount (#448)
- _rOwned[recipient] = _rOwned[recipient] + s.rTransferAmount (#449)
- _tokenTransfer(from,to,amount,! (_isExcludedFromFee[from] || _isExcludedFromFee[to])) (#432)
- _rTotal -= rRfi (#321)
- _tokenTransfer(from,to,amount,! (_isExcludedFromFee[from] || _isExcludedFromFee[to])) (#432)
- _tOwned[address(this)] += tLiquidity (#330)
- _tOwned[deadAddress] += tBurn (#350)
- _tOwned[sender] = _tOwned[sender] - tAmount (#442)
- _tOwned[address(this)] += tMarketing (#340)
- _tOwned[recipient] = _tOwned[recipient] + s.tTransferAmount (#445)
Apply the check-effects-interactions pattern.
Additional information: link
SAIYAN.rescueAnyBEP20Tokens(address,address,uint256) (#562-564) ignores return value by IERC20(_tokenAddr).transfer(_to,_amount) (#563)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 2: Unchecked transfer + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
SAIYAN.swapAndLiquify(uint256) (#468-492) performs a multiplication on the result of a division:
-unitBalance = deltaBalance / (denominator - taxes.liquidity) (#479)
-bnbToAddLiquidityWith = unitBalance * taxes.liquidity (#480)
SAIYAN.swapAndLiquify(uint256) (#468-492) performs a multiplication on the result of a division:
-unitBalance = deltaBalance / (denominator - taxes.liquidity) (#479)
-marketingAmt = unitBalance * 2 * taxes.marketing (#487)
Consider ordering multiplication before division.
Additional information: link
SAIYAN.addLiquidity(uint256,uint256) (#494-507) ignores return value by router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
Ensure that all the return values of the function calls are used.
Additional information: link
SAIYAN.allowance(address,address).owner (#227) shadows:
- Ownable.owner() (#60-62) (function)
SAIYAN._approve(address,address,uint256).owner (#408) shadows:
- Ownable.owner() (#60-62) (function)
Rename the local variables that shadow another component.
Additional information: link
SAIYAN.updateMaxTxAmount(uint256) (#532-534) should emit an event for:
- maxTxAmount = amount * 10 ** _decimals (#533)
SAIYAN.updateMaxWalletBalance(uint256) (#536-538) should emit an event for:
- maxWalletAmount = amount * 10 ** _decimals (#537)
SAIYAN.updateSwapTokensAtAmount(uint256) (#540-542) should emit an event for:
- swapTokensAtAmount = amount * 10 ** _decimals (#541)
Emit an event for critical parameter changes.
Additional information: link
SAIYAN.updatemarketingWallet(address).newWallet (#527) lacks a zero-check on :
- marketingWallet = newWallet (#528)
SAIYAN.updateRouterAndPair(address,address).newPair (#548) lacks a zero-check on :
- pair = newPair (#551)
Check that the address is not zero.
Additional information: link
Reentrancy in SAIYAN._transfer(address,address,uint256) (#416-433):
External calls:
- swapAndLiquify(swapTokensAtAmount) (#429)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#518-524)
- address(marketingWallet).sendValue(marketingAmt) (#489)
External calls sending eth:
- swapAndLiquify(swapTokensAtAmount) (#429)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,! (_isExcludedFromFee[from] || _isExcludedFromFee[to])) (#432)
- totFeesPaid.liquidity += tLiquidity (#326)
- totFeesPaid.burn += tBurn (#346)
- totFeesPaid.marketing += tMarketing (#336)
- totFeesPaid.rfi += tRfi (#322)
Reentrancy in SAIYAN.constructor() (#182-201):
External calls:
- _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH()) (#185-186)
State variables written after the call(s):
- excludeFromReward(pair) (#191)
- _excluded.push(account) (#286)
- excludeFromReward(deadAddress) (#192)
- _excluded.push(account) (#286)
- excludeFromReward(pair) (#191)
- _isExcluded[account] = true (#285)
- excludeFromReward(deadAddress) (#192)
- _isExcluded[account] = true (#285)
- _isExcludedFromFee[owner()] = true (#195)
- _isExcludedFromFee[address(this)] = true (#196)
- _isExcludedFromFee[marketingWallet] = true (#197)
- _isExcludedFromFee[deadAddress] = true (#198)
- _rOwned[owner()] = _rTotal (#194)
- excludeFromReward(pair) (#191)
- _tOwned[account] = tokenFromReflection(_rOwned[account]) (#283)
- excludeFromReward(deadAddress) (#192)
- _tOwned[account] = tokenFromReflection(_rOwned[account]) (#283)
- pair = _pair (#189)
- router = _router (#188)
Reentrancy in SAIYAN.swapAndLiquify(uint256) (#468-492):
External calls:
- swapTokensForBNB(toSwap) (#476)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#518-524)
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#484)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
External calls sending eth:
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#484)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
State variables written after the call(s):
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#484)
- _allowances[owner][spender] = amount (#411)
Reentrancy in SAIYAN.transferFrom(address,address,uint256) (#236-244):
External calls:
- _transfer(sender,recipient,amount) (#237)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#518-524)
- address(marketingWallet).sendValue(marketingAmt) (#489)
External calls sending eth:
- _transfer(sender,recipient,amount) (#237)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
State variables written after the call(s):
- _approve(sender,_msgSender(),currentAllowance - amount) (#241)
- _allowances[owner][spender] = amount (#411)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SAIYAN._transfer(address,address,uint256) (#416-433):
External calls:
- swapAndLiquify(swapTokensAtAmount) (#429)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#518-524)
- address(marketingWallet).sendValue(marketingAmt) (#489)
External calls sending eth:
- swapAndLiquify(swapTokensAtAmount) (#429)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
Event emitted after the call(s):
- Transfer(sender,deadAddress,s.tBurn) (#460)
- _tokenTransfer(from,to,amount,! (_isExcludedFromFee[from] || _isExcludedFromFee[to])) (#432)
- Transfer(sender,recipient,s.tTransferAmount) (#463)
- _tokenTransfer(from,to,amount,! (_isExcludedFromFee[from] || _isExcludedFromFee[to])) (#432)
- Transfer(sender,address(this),s.tLiquidity + s.tMarketing) (#464)
- _tokenTransfer(from,to,amount,! (_isExcludedFromFee[from] || _isExcludedFromFee[to])) (#432)
Reentrancy in SAIYAN.constructor() (#182-201):
External calls:
- _pair = IFactory(_router.factory()).createPair(address(this),_router.WETH()) (#185-186)
Event emitted after the call(s):
- Transfer(address(0),owner(),_tTotal) (#200)
Reentrancy in SAIYAN.swapAndLiquify(uint256) (#468-492):
External calls:
- swapTokensForBNB(toSwap) (#476)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#518-524)
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#484)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
External calls sending eth:
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#484)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#412)
- addLiquidity(tokensToAddLiquidityWith,bnbToAddLiquidityWith) (#484)
Reentrancy in SAIYAN.transferFrom(address,address,uint256) (#236-244):
External calls:
- _transfer(sender,recipient,amount) (#237)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
- router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#518-524)
- address(marketingWallet).sendValue(marketingAmt) (#489)
External calls sending eth:
- _transfer(sender,recipient,amount) (#237)
- router.addLiquidityETH{value: bnbAmount}(address(this),tokenAmount,0,0,marketingWallet,block.timestamp) (#499-506)
- (success) = recipient.call{value: amount}() (#35)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#412)
- _approve(sender,_msgSender(),currentAllowance - amount) (#241)
Apply the check-effects-interactions pattern.
Additional information: link
SAIYAN.includeInReward(address) (#289-300) has costly operations inside a loop:
- _excluded.pop() (#296)
Use a local variable to hold the loop computation result.
Additional information: link
Context._msgData() (#45-48) is never used and should be removed
Remove unused functions.
Additional information: link
SAIYAN._rTotal (#130) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
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
Pragma version^0.8.10 (#7) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.10 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
Low level call in Address.sendValue(address,uint256) (#32-37):
- (success) = recipient.call{value: amount}() (#35)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IRouter.WETH() (#91) is not in mixedCase
Struct SAIYAN.valuesFromGetValues (#160-172) is not in CapWords
Parameter SAIYAN.setTaxes(uint256,uint256,uint256,uint256)._rfi (#316) is not in mixedCase
Parameter SAIYAN.setTaxes(uint256,uint256,uint256,uint256)._marketing (#316) is not in mixedCase
Parameter SAIYAN.setTaxes(uint256,uint256,uint256,uint256)._liquidity (#316) is not in mixedCase
Parameter SAIYAN.setTaxes(uint256,uint256,uint256,uint256)._burn (#316) is not in mixedCase
Parameter SAIYAN.updateSwapEnabled(bool)._enabled (#544) is not in mixedCase
Parameter SAIYAN.rescueAnyBEP20Tokens(address,address,uint256)._tokenAddr (#562) is not in mixedCase
Parameter SAIYAN.rescueAnyBEP20Tokens(address,address,uint256)._to (#562) is not in mixedCase
Parameter SAIYAN.rescueAnyBEP20Tokens(address,address,uint256)._amount (#562) is not in mixedCase
Constant SAIYAN._decimals (#126) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SAIYAN.deadAddress (#137) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SAIYAN._name (#140) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SAIYAN._symbol (#141) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#46)" inContext (#40-49)
Remove redundant statements if they congest code but offer no value.
Additional information: link
SAIYAN.slitherConstructorConstantVariables() (#109-569) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#137)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SAIYAN._tTotal (#129) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#69-71)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#73-76)
name() should be declared external:
- SAIYAN.name() (#203-205)
symbol() should be declared external:
- SAIYAN.symbol() (#206-208)
decimals() should be declared external:
- SAIYAN.decimals() (#209-211)
totalSupply() should be declared external:
- SAIYAN.totalSupply() (#213-215)
transfer(address,uint256) should be declared external:
- SAIYAN.transfer(address,uint256) (#222-225)
allowance(address,address) should be declared external:
- SAIYAN.allowance(address,address) (#227-229)
approve(address,uint256) should be declared external:
- SAIYAN.approve(address,uint256) (#231-234)
transferFrom(address,address,uint256) should be declared external:
- SAIYAN.transferFrom(address,address,uint256) (#236-244)
increaseAllowance(address,uint256) should be declared external:
- SAIYAN.increaseAllowance(address,uint256) (#246-249)
decreaseAllowance(address,uint256) should be declared external:
- SAIYAN.decreaseAllowance(address,uint256) (#251-257)
isExcludedFromReward(address) should be declared external:
- SAIYAN.isExcludedFromReward(address) (#259-261)
reflectionFromToken(uint256,bool) should be declared external:
- SAIYAN.reflectionFromToken(uint256,bool) (#263-272)
excludeFromFee(address) should be declared external:
- SAIYAN.excludeFromFee(address) (#303-305)
includeInFee(address) should be declared external:
- SAIYAN.includeInFee(address) (#307-309)
isExcludedFromFee(address) should be declared external:
- SAIYAN.isExcludedFromFee(address) (#312-314)
setTaxes(uint256,uint256,uint256,uint256) should be declared external:
- SAIYAN.setTaxes(uint256,uint256,uint256,uint256) (#316-318)
rescueAnyBEP20Tokens(address,address,uint256) should be declared external:
- SAIYAN.rescueAnyBEP20Tokens(address,address,uint256) (#562-564)
Use the external attribute for functions never called from the contract.
Additional information: link
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 scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Telegram account has relatively few subscribers
Twitter account has relatively few followers
Unable to find Youtube account
Unable to find Discord account
Twitter account has few posts