Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in BabySquidVerse3D._transfer(address,address,uint256) (#743-796):
External calls:
- swapAndLiquify(tokensToSwap) (#776)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- swapAndLiquify(tokensToSwap) (#776)
- recipient.transfer(amount) (#962)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
State variables written after the call(s):
- _transferStandard(sender,recipient,amount) (#791)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#897)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#800)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#801)
- _transferStandard(sender,recipient,amount) (#791)
- _rTotal = _rTotal.sub(rFee) (#808)
Apply the check-effects-interactions pattern.
Additional information: link
BabySquidVerse3D._tOwned (#520) is never initialized. It is used in:
- BabySquidVerse3D._getCurrentSupply() (#879-892)
BabySquidVerse3D._excluded (#525) is never initialized. It is used in:
- BabySquidVerse3D._getCurrentSupply() (#879-892)
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
BabySquidVerse3D._getTValues(uint256) (#836-851) performs a multiplication on the result of a division:
-tFee = tAmount.div(10 ** 2).mul(_taxFee).mul(multiplier) (#846)
BabySquidVerse3D._getTValues(uint256) (#836-851) performs a multiplication on the result of a division:
-tLiquidity = tAmount.div(10 ** 2).mul(_liquidityFee).mul(multiplier) (#847-848)
BabySquidVerse3D.swapAndLiquify(uint256) (#900-930) performs a multiplication on the result of a division:
-liquidtyPortion = contractTokenBalance.div(10 ** 2).mul(40) (#902)
BabySquidVerse3D.slitherConstructorVariables() (#516-967) performs a multiplication on the result of a division:
-_maxWallet = _tTotal.div(10 ** 2).mul(100) (#534)
Consider ordering multiplication before division.
Additional information: link
BabySquidVerse3D._transfer(address,address,uint256) (#743-796) uses tx.origin for authorization: require(bool,string)(balanceOf(tx.origin) + amount <= _maxWallet,Exceeds maximum wallet token amount) (#758-762)
Do not use tx.origin for authorization.
Additional information: link
BabySquidVerse3D.addLiquidity(uint256,uint256) (#948-959) ignores return value by pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
Ensure that all the return values of the function calls are used.
Additional information: link
BabySquidVerse3D.allowance(address,address).owner (#644) shadows:
- Ownable.owner() (#133-135) (function)
BabySquidVerse3D._approve(address,address,uint256).owner (#709) shadows:
- Ownable.owner() (#133-135) (function)
Rename the local variables that shadow another component.
Additional information: link
Reentrancy in BabySquidVerse3D._transfer(address,address,uint256) (#743-796):
External calls:
- swapAndLiquify(tokensToSwap) (#776)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- swapAndLiquify(tokensToSwap) (#776)
- recipient.transfer(amount) (#962)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
State variables written after the call(s):
- removeAllFee() (#789)
- _liquidityFee = 0 (#727)
- restoreAllFee() (#793)
- _liquidityFee = _previousLiquidityFee (#740)
- turnOffPenalties() (#795)
- _penaltiesEnabled = false (#731)
- removeAllFee() (#789)
- _previousLiquidityFee = _liquidityFee (#724)
- removeAllFee() (#789)
- _previousTaxFee = _taxFee (#723)
- _transferStandard(sender,recipient,amount) (#791)
- _tFeeTotal = _tFeeTotal.add(tFee) (#809)
- removeAllFee() (#789)
- _taxFee = 0 (#726)
- restoreAllFee() (#793)
- _taxFee = _previousTaxFee (#739)
Reentrancy in BabySquidVerse3D.constructor() (#561-575):
External calls:
- pcsV2Pair = IPancakeFactory(_pancakeswapV2Router.factory()).createPair(address(this),_pancakeswapV2Router.WETH()) (#568-571)
State variables written after the call(s):
- pcsV2Router = _pancakeswapV2Router (#572)
Reentrancy in BabySquidVerse3D.swapAndLiquify(uint256) (#900-930):
External calls:
- swapTokensForBNB(half) (#910)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
External calls sending eth:
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- _allowances[owner][spender] = amount (#716)
Reentrancy in BabySquidVerse3D.swapAndLiquify(uint256) (#900-930):
External calls:
- swapTokensForBNB(half) (#910)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- swapTokensForBNB(Portion) (#921)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
State variables written after the call(s):
- swapTokensForBNB(Portion) (#921)
- _allowances[owner][spender] = amount (#716)
Reentrancy in BabySquidVerse3D.transferFrom(address,address,uint256) (#662-677):
External calls:
- _transfer(sender,recipient,amount) (#667)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- _transfer(sender,recipient,amount) (#667)
- recipient.transfer(amount) (#962)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#668-675)
- _allowances[owner][spender] = amount (#716)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in BabySquidVerse3D._transfer(address,address,uint256) (#743-796):
External calls:
- swapAndLiquify(tokensToSwap) (#776)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- swapAndLiquify(tokensToSwap) (#776)
- recipient.transfer(amount) (#962)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#804)
- _transferStandard(sender,recipient,amount) (#791)
Reentrancy in BabySquidVerse3D.constructor() (#561-575):
External calls:
- pcsV2Pair = IPancakeFactory(_pancakeswapV2Router.factory()).createPair(address(this),_pancakeswapV2Router.WETH()) (#568-571)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_tTotal) (#574)
Reentrancy in BabySquidVerse3D.swapAndLiquify(uint256) (#900-930):
External calls:
- swapTokensForBNB(half) (#910)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
External calls sending eth:
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#717)
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- LiquiditySwapped(half,newBalanceFromLiquify,otherHalf) (#916)
Reentrancy in BabySquidVerse3D.swapAndLiquify(uint256) (#900-930):
External calls:
- swapTokensForBNB(half) (#910)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- swapTokensForBNB(Portion) (#921)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#717)
- swapTokensForBNB(Portion) (#921)
Reentrancy in BabySquidVerse3D.swapAndLiquify(uint256) (#900-930):
External calls:
- swapTokensForBNB(half) (#910)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- swapTokensForBNB(Portion) (#921)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- TransferETH(address(buybackswap),address(this).balance) (#927)
- recipient.transfer(amount) (#962)
Event emitted after the call(s):
- TokensSwapped(Portion,BalanceReceived,totalBalanceToSend,buybackswap) (#929)
Reentrancy in BabySquidVerse3D.transferFrom(address,address,uint256) (#662-677):
External calls:
- _transfer(sender,recipient,amount) (#667)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- pcsV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#939-945)
External calls sending eth:
- _transfer(sender,recipient,amount) (#667)
- recipient.transfer(amount) (#962)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#717)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#668-675)
Apply the check-effects-interactions pattern.
Additional information: link
BabySquidVerse3D._getAntiDumpMultiplier() (#818-834) uses timestamp for comparisons
Dangerous comparisons:
- time_since_start < 1 * hour (#822)
- time_since_start < 2 * hour (#824)
- time_since_start < 3 * hour (#826)
Avoid relying on block.timestamp.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.5.0', '>=0.6.2', '^0.6.12']
- ^0.6.12 (#1)
- >=0.6.2 (#161)
- >=0.6.2 (#322)
- >=0.5.0 (#371)
- >=0.5.0 (#405)
Use one Solidity version.
Additional information: link
Context._msgData() (#49-52) is never used and should be removed
SafeMath.mod(uint256,uint256) (#105-107) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#109-116) is never used and should be removed
Remove unused functions.
Additional information: link
BabySquidVerse3D._previousTaxFee (#537) is set pre-construction with a non-constant function or state variable:
- _taxFee
BabySquidVerse3D._previousLiquidityFee (#538) is set pre-construction with a non-constant function or state variable:
- _liquidityFee
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.6.2 (#161) allows old versions
Pragma version>=0.6.2 (#322) allows old versions
Pragma version>=0.5.0 (#371) allows old versions
Pragma version>=0.5.0 (#405) allows old versions
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
Function IPancakeRouter01.WETH() (#166) is not in mixedCase
Function IPancakeFactory.INIT_CODE_PAIR_HASH() (#402) is not in mixedCase
Function IPancakePair.DOMAIN_SEPARATOR() (#440) is not in mixedCase
Function IPancakePair.PERMIT_TYPEHASH() (#442) is not in mixedCase
Function IPancakePair.MINIMUM_LIQUIDITY() (#473) is not in mixedCase
Function BabySquidVerse3D.TransferETH(address,uint256) (#961-963) is not in mixedCase
Constant BabySquidVerse3D._tTotal (#530) is not in UPPER_CASE_WITH_UNDERSCORES
Variable BabySquidVerse3D._taxFee (#535) is not in mixedCase
Variable BabySquidVerse3D._liquidityFee (#536) is not in mixedCase
Variable BabySquidVerse3D._previousTaxFee (#537) is not in mixedCase
Variable BabySquidVerse3D._previousLiquidityFee (#538) is not in mixedCase
Variable BabySquidVerse3D._start_timestamp (#546) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#50)" inContext (#42-53)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Reentrancy in BabySquidVerse3D._transfer(address,address,uint256) (#743-796):
External calls:
- swapAndLiquify(tokensToSwap) (#776)
- recipient.transfer(amount) (#962)
External calls sending eth:
- swapAndLiquify(tokensToSwap) (#776)
- recipient.transfer(amount) (#962)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
State variables written after the call(s):
- removeAllFee() (#789)
- _liquidityFee = 0 (#727)
- restoreAllFee() (#793)
- _liquidityFee = _previousLiquidityFee (#740)
- turnOffPenalties() (#795)
- _penaltiesEnabled = false (#731)
- removeAllFee() (#789)
- _previousLiquidityFee = _liquidityFee (#724)
- removeAllFee() (#789)
- _previousTaxFee = _taxFee (#723)
- _transferStandard(sender,recipient,amount) (#791)
- _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity) (#897)
- _rOwned[sender] = _rOwned[sender].sub(rAmount) (#800)
- _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount) (#801)
- _transferStandard(sender,recipient,amount) (#791)
- _rTotal = _rTotal.sub(rFee) (#808)
- _transferStandard(sender,recipient,amount) (#791)
- _tFeeTotal = _tFeeTotal.add(tFee) (#809)
- removeAllFee() (#789)
- _taxFee = 0 (#726)
- restoreAllFee() (#793)
- _taxFee = _previousTaxFee (#739)
Event emitted after the call(s):
- Transfer(sender,recipient,tTransferAmount) (#804)
- _transferStandard(sender,recipient,amount) (#791)
Reentrancy in BabySquidVerse3D.swapAndLiquify(uint256) (#900-930):
External calls:
- TransferETH(address(buybackswap),address(this).balance) (#927)
- recipient.transfer(amount) (#962)
External calls sending eth:
- addLiquidity(otherHalf,newBalanceFromLiquify) (#914)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
- TransferETH(address(buybackswap),address(this).balance) (#927)
- recipient.transfer(amount) (#962)
Event emitted after the call(s):
- TokensSwapped(Portion,BalanceReceived,totalBalanceToSend,buybackswap) (#929)
Reentrancy in BabySquidVerse3D.transferFrom(address,address,uint256) (#662-677):
External calls:
- _transfer(sender,recipient,amount) (#667)
- recipient.transfer(amount) (#962)
External calls sending eth:
- _transfer(sender,recipient,amount) (#667)
- recipient.transfer(amount) (#962)
- pcsV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#951-958)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#668-675)
- _allowances[owner][spender] = amount (#716)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#717)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#668-675)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#171) is too similar to IPancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#172)
Variable BabySquidVerse3D._transferStandard(address,address,uint256).rTransferAmount (#799) is too similar to BabySquidVerse3D._getTValues(uint256).tTransferAmount (#849)
Variable BabySquidVerse3D._transferStandard(address,address,uint256).rTransferAmount (#799) is too similar to BabySquidVerse3D._getValues(uint256).tTransferAmount (#813)
Variable BabySquidVerse3D._transferStandard(address,address,uint256).rTransferAmount (#799) is too similar to BabySquidVerse3D._transferStandard(address,address,uint256).tTransferAmount (#799)
Variable BabySquidVerse3D._getValues(uint256).rTransferAmount (#814) is too similar to BabySquidVerse3D._transferStandard(address,address,uint256).tTransferAmount (#799)
Variable BabySquidVerse3D._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#870) is too similar to BabySquidVerse3D._transferStandard(address,address,uint256).tTransferAmount (#799)
Variable BabySquidVerse3D._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#870) is too similar to BabySquidVerse3D._getTValues(uint256).tTransferAmount (#849)
Variable BabySquidVerse3D._getValues(uint256).rTransferAmount (#814) is too similar to BabySquidVerse3D._getTValues(uint256).tTransferAmount (#849)
Variable BabySquidVerse3D._getValues(uint256).rTransferAmount (#814) is too similar to BabySquidVerse3D._getValues(uint256).tTransferAmount (#813)
Variable BabySquidVerse3D._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#870) is too similar to BabySquidVerse3D._getValues(uint256).tTransferAmount (#813)
Prevent variables from having similar names.
Additional information: link
BabySquidVerse3D.slitherConstructorVariables() (#516-967) uses literals with too many digits:
- _numOfTokensToExchange = 10000000 * 10 ** 6 * 10 ** 9 (#533)
BabySquidVerse3D.slitherConstructorConstantVariables() (#516-967) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 6 * 10 ** 9 (#530)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
BabySquidVerse3D._decimals (#545) should be constant
BabySquidVerse3D._maxWallet (#534) should be constant
BabySquidVerse3D._name (#543) should be constant
BabySquidVerse3D._numOfTokensToExchange (#533) should be constant
BabySquidVerse3D._symbol (#544) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#142-145)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#147-149)
name() should be declared external:
- BabySquidVerse3D.name() (#583-585)
symbol() should be declared external:
- BabySquidVerse3D.symbol() (#587-589)
decimals() should be declared external:
- BabySquidVerse3D.decimals() (#591-593)
getEquivalentValue() should be declared external:
- BabySquidVerse3D.getEquivalentValue() (#595-613)
getPairReserves() should be declared external:
- BabySquidVerse3D.getPairReserves() (#616-621)
totalSupply() should be declared external:
- BabySquidVerse3D.totalSupply() (#623-625)
isExcluded(address) should be declared external:
- BabySquidVerse3D.isExcluded(address) (#631-633)
transfer(address,uint256) should be declared external:
- BabySquidVerse3D.transfer(address,uint256) (#635-642)
allowance(address,address) should be declared external:
- BabySquidVerse3D.allowance(address,address) (#644-651)
approve(address,uint256) should be declared external:
- BabySquidVerse3D.approve(address,uint256) (#653-660)
transferFrom(address,address,uint256) should be declared external:
- BabySquidVerse3D.transferFrom(address,address,uint256) (#662-677)
totalFees() should be declared external:
- BabySquidVerse3D.totalFees() (#679-681)
inSwapAndLiquify() should be declared external:
- BabySquidVerse3D.inSwapAndLiquify() (#683-685)
reflect(uint256) should be declared external:
- BabySquidVerse3D.reflect(uint256) (#687-693)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts