MAoE Token Token Logo

MAoE Token

About MAoE

Listings

Token 4 years
CoinGecko 4 years
CoinMarketCap 4 years

Website

white paper

MAoE's development team has years of expertise building high-quality technology projects. Over the years, we have pondered and undertaken numerous groundbreaking projects in the gaming industry in order to provide gamers with amazing experiences. Now, owing to blockchain technology and the NFT (Non-Fungible-Token), we can achieve that aim. We are able to add actual value to our in-game characters and products by encoding them into NFTs and creating a market for them.
Our goal is to create a world-class NFT ecosystem in the blockchain environment that provides long-term value to our users and investors. A vast ecosystem of BSC-based games, a highly liquid NFT Marketplace, world-class collections, and the MAoE global community with 200,000 members to begin with.
MAoE is a “PLAY TO EARN” game built on the BSC platform. In Meta Age of Empires, players will embody cyborgs, go on an adventure to uncover the treasures, and learn more about mankind's once-famous civilizations.
Meta Age of Empires features basic yet appealing gameplay that is appropriate for all ages, and the game also demands players to think creatively in order to find a variety of priceless gems. These are the significant benefits that contribute to the game's unique appeal. Being enveloped in the rapid growth of Blockchain technology as well as the NFT coding trend, which is quickly entering the conventional gaming industry with a big number of Crypto believers.
Meta Age of Empires promises to make significant advancements in the project's development as well as the day-by-day completion of the full Ecosystem established by our developers.
Binance Smart Chain technology (BSC/BEP20) is used to build the game's platform. In-game objects are encrypted in NFT format to allow for P2P peer-to-peer transactions and to support the Play to Earn (P2E) system.

Laser Scorebeta Last Audit: 16 July 2022

report
Token is either risky or in presale. For presale 30+ is a fine score.

MAoE.withdrawTokenForOwner(uint256) (#1234-1237) ignores return value by this.transfer(owner(),amount) (#1235)
MAoE.withdrawBUSDForOwner(address,uint256) (#1239-1246) ignores return value by busd.transfer(owner(),amount) (#1244)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.

Additional information: link


Contract ownership is not renounced (belongs to a wallet)

MAoE._transfer(address,address,uint256) (#1154-1175) performs a multiplication on the result of a division:
-_fee = (amount * feeRate) / 10000 (#1161)
-_burnAmount = _fee * burnRate / 10000 (#1162)
MAoE._transfer(address,address,uint256) (#1154-1175) performs a multiplication on the result of a division:
-_fee = (amount * feeRate) / 10000 (#1161)
-_treasuryAmount = _fee * treasuryRate / 10000 (#1163)
Consider ordering multiplication before division.

Additional information: link

Reentrancy in MAoE._transfer(address,address,uint256) (#1154-1175):
External calls:
- super._transfer(sender,addressReceiver,_profitAmount) (#1168)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
- bpContract.protect(from,to,amount) (#1091)
State variables written after the call(s):
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
- _balances[from] = fromBalance - amount (#806)
- _balances[to] += amount (#808)
Reentrancy in MAoE._transfer(address,address,uint256) (#1154-1175):
External calls:
- super._transfer(sender,addressReceiver,_profitAmount) (#1168)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressBurn,_burnAmount) (#1170)
- bpContract.protect(from,to,amount) (#1091)
State variables written after the call(s):
- super._transfer(sender,addressBurn,_burnAmount) (#1170)
- _balances[from] = fromBalance - amount (#806)
- _balances[to] += amount (#808)
Reentrancy in MAoE._transfer(address,address,uint256) (#1154-1175):
External calls:
- super._transfer(sender,addressReceiver,_profitAmount) (#1168)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressBurn,_burnAmount) (#1170)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,recipient,amount) (#1174)
- bpContract.protect(from,to,amount) (#1091)
State variables written after the call(s):
- super._transfer(sender,recipient,amount) (#1174)
- _balances[from] = fromBalance - amount (#806)
- _balances[to] += amount (#808)
Apply the check-effects-interactions pattern.

Additional information: link

MAoE.constructor(address,address,address,address)._BUSD (#1000) lacks a zero-check on :
- BUSD = _BUSD (#1006)
MAoE.constructor(address,address,address,address)._addressReceiver (#1000) lacks a zero-check on :
- addressReceiver = _addressReceiver (#1007)
MAoE.constructor(address,address,address,address)._addressTreasury (#1000) lacks a zero-check on :
- addressTreasury = _addressTreasury (#1008)
MAoE.constructor(address,address,address,address)._addressBurn (#1000) lacks a zero-check on :
- addressBurn = _addressBurn (#1009)
Check that the address is not zero.

Additional information: link

Reentrancy in MAoE.constructor(address,address,address,address) (#1000-1016):
External calls:
- _mint(msg.sender,250 * 10 ** 6 * 10 ** 18) (#1003)
- bpContract.protect(from,to,amount) (#1091)
State variables written after the call(s):
- BUSD = _BUSD (#1006)
- addressBurn = _addressBurn (#1009)
- addressReceiver = _addressReceiver (#1007)
- addressTreasury = _addressTreasury (#1008)
- adminlist[msg.sender] = 1 (#1004)
Reentrancy in MAoE.constructor(address,address,address,address) (#1000-1016):
External calls:
- _mint(msg.sender,250 * 10 ** 6 * 10 ** 18) (#1003)
- bpContract.protect(from,to,amount) (#1091)
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),BUSD) (#1014-1015)
State variables written after the call(s):
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),BUSD) (#1014-1015)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in MAoE._transfer(address,address,uint256) (#1154-1175):
External calls:
- super._transfer(sender,addressReceiver,_profitAmount) (#1168)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
- bpContract.protect(from,to,amount) (#1091)
Event emitted after the call(s):
- Transfer(from,to,amount) (#810)
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
Reentrancy in MAoE._transfer(address,address,uint256) (#1154-1175):
External calls:
- super._transfer(sender,addressReceiver,_profitAmount) (#1168)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressBurn,_burnAmount) (#1170)
- bpContract.protect(from,to,amount) (#1091)
Event emitted after the call(s):
- Transfer(from,to,amount) (#810)
- super._transfer(sender,addressBurn,_burnAmount) (#1170)
Reentrancy in MAoE._transfer(address,address,uint256) (#1154-1175):
External calls:
- super._transfer(sender,addressReceiver,_profitAmount) (#1168)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressTreasury,_treasuryAmount) (#1169)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,addressBurn,_burnAmount) (#1170)
- bpContract.protect(from,to,amount) (#1091)
- super._transfer(sender,recipient,amount) (#1174)
- bpContract.protect(from,to,amount) (#1091)
Event emitted after the call(s):
- Transfer(from,to,amount) (#810)
- super._transfer(sender,recipient,amount) (#1174)
Reentrancy in MAoE.withdrawBUSDForOwner(address,uint256) (#1239-1246):
External calls:
- busd.transfer(owner(),amount) (#1244)
Event emitted after the call(s):
- WithDraw(amount) (#1245)
Reentrancy in MAoE.withdrawTokenForOwner(uint256) (#1234-1237):
External calls:
- this.transfer(owner(),amount) (#1235)
Event emitted after the call(s):
- WithDraw(amount) (#1236)
Apply the check-effects-interactions pattern.

Additional information: link

Context._msgData() (#369-371) is never used and should be removed
ERC20._burn(address,uint256) (#847-862) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version^0.8.0 (#4) allows old versions
Pragma version^0.8.0 (#352) allows old versions
Pragma version^0.8.0 (#379) allows old versions
Pragma version^0.8.0 (#457) allows old versions
Pragma version^0.8.0 (#542) allows old versions
Pragma version^0.8.0 (#572) allows old versions
Pragma version^0.8.0 (#954) allows old versions
solc-0.8.13 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

Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#69) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#71) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#101) is not in mixedCase
Function IUniswapV2Router01.WETH() (#145) is not in mixedCase
Parameter MAoE.withdrawBUSDForOwner(address,uint256).token_address (#1239) is not in mixedCase
Variable MAoE.BUSD (#971) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#150) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#151)
Prevent variables from having similar names.

Additional information: link

MAoE.UNISWAP_V2_ROUTER (#983-984) is never used in MAoE (#967-1355)
Remove unused state variables.

Additional information: link

MAoE.treasuryRate (#987) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#428-430)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#436-439)
name() should be declared external:
- ERC20.name() (#629-631)
symbol() should be declared external:
- ERC20.symbol() (#637-639)
decimals() should be declared external:
- ERC20.decimals() (#654-656)
totalSupply() should be declared external:
- ERC20.totalSupply() (#661-663)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#668-670)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#680-684)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#703-707)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#725-734)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#748-752)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#768-777)
setBPContract(address) should be declared external:
- MAoE.setBPContract(address) (#1061-1068)
setBPEnabled(bool) should be declared external:
- MAoE.setBPEnabled(bool) (#1070-1075)
setBPDisableForever() should be declared external:
- MAoE.setBPDisableForever() (#1077-1084)
withdrawTokenForOwner(uint256) should be declared external:
- MAoE.withdrawTokenForOwner(uint256) (#1234-1237)
withdrawBUSDForOwner(address,uint256) should be declared external:
- MAoE.withdrawBUSDForOwner(address,uint256) (#1239-1246)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Average 30d PancakeSwap liquidity is less than $100. Token is either dead or inactive.


Average 30d PancakeSwap volume is less than $100. Token is either dead or inactive.


Average 30d number of PancakeSwap swaps is less than 1. Token is either dead or inactive.


Average PancakeSwap trading volume, liqudity, number of swaps are extremely low. Token seems to be dead.


Number of Binance Smart Chain (BSC) token holders is low.


Token is deployed only at one blockchain


Token has only one trading pair

No disclosed threats


BscScan page for the token does not contain additional info: website, socials, description, etc.

Additional information: link


Unable to find KYC or doxxing proof


Unable to find code repository for the project


Unable to verify token contract address on the website


Unable to find token on CoinHunt

Additional information: link


Token is not listed at Mobula.Finance

Additional information: link


Young tokens have high risks of scam / price dump / death


Young tokens have high risks of scam / price dump / death


Token has relatively low CoinGecko rank


Young tokens have high risks of price dump / death


Young tokens have high risks of price dump / death


Token has relatively low CoinMarketCap rank


Young tokens have high risks of price dump / death

Price for MAoE

News for MAoE