Satozhi Token Logo

SATOZ [Satozhi] Token

About SATOZ

Listings

Token 2 years
CoinGecko 23 months
CoinMarketCap 23 months
white paper

SATOZHI (SATOZ) Was formed using a technical protocol similar to Bitcoin (BTC) which was created according to Satoshi Nakamoto's proposal.
If in Bitcoin (BTC) we are familiar with the Proof-of-Work (PoW) protocol then at Satozhi (SATOZ) a better protocol is made, known as Proof-of-Burn (PoB).

How does the Proof-of-Burn (PoB) protocol work?
Satozhi (SATOZ) is the first token in the world to use this new protocol.
This protocol uses the logic of burning the token supply in the block chain, and then creating a new token in the pool every 10 minutes.

How many prize will you get from burning SATOZ?
the user will get a prize every 10 minutes. The prize distributed is 50 SATOZ, this calculation is obtained from the personal percentage that users burn up to the total inventory that has been burned. The bigger the user burns, the bigger the portion the user gets from a total of 50 SATOZ / 10 minutes.

Social

Laser Scorebeta Last Audit: 26 August 2022

report
Token seems to be (relatively) fine. It still become a scam, but probability is moderate.

Satozhi._balanceRewards(address) (#194-205) uses a weak PRNG: "_modulus = uint256(_timediff % _blockSpacing) (#200)"
Do not use block.timestamp, now or blockhash as a source of randomness

Additional information: link


Contract ownership is not renounced (belongs to a wallet)

Satozhi.constructor() (#105-112) uses literals with too many digits:
- _totalSupply = 2100000000000000 (#109)
Satozhi._virtualRewards(address) (#173-183) uses literals with too many digits:
- _portion = uint256((100000000 * _accountPoB[account]) / _contractPoB) (#177)
Satozhi._virtualRewards(address) (#173-183) uses literals with too many digits:
- _rewards = uint256(((_portion * _blockRewards) / 100000000) * _blocks) (#178)
Satozhi._balanceRewards(address) (#194-205) uses literals with too many digits:
- _portion = uint256((100000000 * _accountPoB[account]) / _contractPoB) (#198)
Satozhi._balanceRewards(address) (#194-205) uses literals with too many digits:
- _rewards = uint256(((_portion * _blockRewards) / 100000000) * _blocks) (#199)
Satozhi.slitherConstructorVariables() (#92-247) uses literals with too many digits:
- _blockRewards = 5000000000 (#98)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

Satozhi._blockRewards (#98) should be constant
Satozhi._blockSpacing (#99) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

increaseAllowance(address,uint256) should be declared external:
- Satozhi.increaseAllowance(address,uint256) (#163-167)
decreaseAllowance(address,uint256) should be declared external:
- Satozhi.decreaseAllowance(address,uint256) (#168-172)
mint(uint256) should be declared external:
- Satozhi.mint(uint256) (#184-188)
burn(uint256) should be declared external:
- Satozhi.burn(uint256) (#189-193)
ProofOfBurn(uint256) should be declared external:
- Satozhi.ProofOfBurn(uint256) (#236-245)
Use the external attribute for functions never called from the contract.

Additional information: link

Satozhi._virtualRewards(address) (#173-183) performs a multiplication on the result of a division:
-_rewards = uint256(((_portion * _blockRewards) / 100000000) * _blocks) (#178)
Satozhi._balanceRewards(address) (#194-205) performs a multiplication on the result of a division:
-_rewards = uint256(((_portion * _blockRewards) / 100000000) * _blocks) (#199)
Consider ordering multiplication before division.

Additional information: link

Satozhi.allowance(address,address).owner (#149) shadows:
- Ownable.owner() (#72-74) (function)
Satozhi._approve(address,address,uint256).owner (#225) shadows:
- Ownable.owner() (#72-74) (function)
Rename the local variables that shadow another component.

Additional information: link

Satozhi._virtualRewards(address) (#173-183) uses timestamp for comparisons
Dangerous comparisons:
- _timediff > 0 && _blocks > 0 && _accountTs[account] > 0 (#176)
Satozhi._balanceRewards(address) (#194-205) uses timestamp for comparisons
Dangerous comparisons:
- _timediff > 0 && _blocks > 0 && _accountTs[account] > 0 (#197)
Satozhi.ProofOfBurn(uint256) (#236-245) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(_balances[_msgSender()] >= amount,BEP20: insufficient balance) (#237)
Avoid relying on block.timestamp.

Additional information: link

Context._msgData() (#21-24) is never used and should be removed
Ownable._transferOwnership(address) (#86-90) is never used and should be removed
Ownable.renounceOwnership() (#79-82) is never used and should be removed
Ownable.transferOwnership(address) (#83-85) is never used and should be removed
SafeMath.div(uint256,uint256) (#48-50) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#51-55) is never used and should be removed
SafeMath.mod(uint256,uint256) (#56-58) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#59-62) is never used and should be removed
SafeMath.mul(uint256,uint256) (#40-47) is never used and should be removed
Satozhi._burnFrom(address,uint256) (#231-235) is never used and should be removed
Remove unused functions.

Additional information: link

Function Satozhi.ProofOfBurn(uint256) (#236-245) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (#22)" inContext (#16-25)
Remove redundant statements if they congest code but offer no value.

Additional information: link

Holders:
No disclosed threats


Last post in Twitter was more than 30 days ago


Unable to find Youtube account


Unable to find Discord account


Token is not listed at Mobula.Finance

Additional information: link


Token has relatively low CoinGecko rank


Token has relatively low CoinMarketCap rank

Price for SATOZ

News for SATOZ