GemUni Token Logo

GENI [GemUni] Token

About GENI

Listings

Token 2 years
CoinMarketCap 2 years

Website

white paper

GemUni is building a Decentralized NFTs Gaming Platform for Play To Earn for everyone around the world to engage in Fun, Easy, and Play to Earn Games. Users can enjoy diverse addictive Casual Games & Signature Games while monetizing their experiences with gaming platform rewards and NFTs transactions.

GemUni comprises two ecosystems, GENI token and Reward tokens. In the GENI ecosystem, users can earn GENI (main project cryptocurrency) with our DeFi mechanics and trade NFT items on GemUni's NFT marketplace. In the Reward ecosystem, users can play and earn from two reward systems: Casual Gaming Platform and Signature Gaming Platform.

In the Casual Gaming Platform, users can enjoy diverse addictive casual games and earn gaming platform rewards in the form of GENIX (in-game cryptocurrency). In the Signature Gaming Platform, users will gain access to unique Signature Games that are built separately to enhance gaming experiences and maximize earning opportunities with other reward tokens.

Laser Scorebeta Last Audit: 17 February 2022

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

GENI.removeFromWhales(address[]).i (contracts/GENI.sol#86) is a local variable never initialized
GENI.addListWhales(address[]).i (contracts/GENI.sol#78) is a local variable never initialized
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

GENI.constructor(address,address)._exchange (contracts/GENI.sol#20) lacks a zero-check on :
- exchange = _exchange (contracts/GENI.sol#21)
GENI.constructor(address,address)._busd (contracts/GENI.sol#20) lacks a zero-check on :
- busd = _busd (contracts/GENI.sol#22)
Check that the address is not zero.

Additional information: link

GENI._transfer(address,address,uint256) (contracts/GENI.sol#93-115) uses timestamp for comparisons
Dangerous comparisons:
- block.timestamp < antiWhaleTimeBuy (contracts/GENI.sol#96)
- block.timestamp < antiWhaleTimeSell (contracts/GENI.sol#105)
Avoid relying on block.timestamp.

Additional information: link

Different versions of Solidity is used:
- Version used: ['>=0.6.2', '^0.8.0']
- ^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
- ^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
- ^0.8.0 (@openzeppelin/contracts/utils/Context.sol#4)
- ^0.8.0 (contracts/GENI.sol#1)
- >=0.6.2 (contracts/interfaces/IExchangeRouter.sol#1)
- ^0.8.0 (contracts/interfaces/IGENI.sol#1)
- ^0.8.0 (contracts/utils/PermissionGroup.sol#3)
Use one Solidity version.

Additional information: link

Context._msgData() (@openzeppelin/contracts/utils/Context.sol#21-23) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Context.sol#4) allows old versions
Pragma version^0.8.0 (contracts/GENI.sol#1) allows old versions
Pragma version>=0.6.2 (contracts/interfaces/IExchangeRouter.sol#1) allows old versions
Pragma version^0.8.0 (contracts/interfaces/IGENI.sol#1) allows old versions
Pragma version^0.8.0 (contracts/utils/PermissionGroup.sol#3) 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

Parameter GENI.setLpToken(address)._lpToken (contracts/GENI.sol#35) is not in mixedCase
Parameter GENI.setBusd(address)._busd (contracts/GENI.sol#41) is not in mixedCase
Parameter GENI.setExchange(address)._exchange (contracts/GENI.sol#47) is not in mixedCase
Parameter GENI.addListWhales(address[])._whales (contracts/GENI.sol#77) is not in mixedCase
Parameter GENI.removeFromWhales(address[])._whales (contracts/GENI.sol#85) is not in mixedCase
Function IExchangeRouter.WETH() (contracts/interfaces/IExchangeRouter.sol#5) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Variable IExchangeRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (contracts/interfaces/IExchangeRouter.sol#10) is too similar to IExchangeRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (contracts/interfaces/IExchangeRouter.sol#11)
Prevent variables from having similar names.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#54-56)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#62-65)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#62-64)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#70-72)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#87-89)
totalSupply() should be declared external:
- ERC20.totalSupply() (@openzeppelin/contracts/token/ERC20/ERC20.sol#94-96)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#113-116)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#121-123)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#132-135)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#150-164)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#178-181)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#197-205)
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 number of PancakeSwap swaps is less than 1. Token is either dead or inactive.


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 verify token contract address on the website


Unable to find whitepaper link on the website


Unable to find token on CoinHunt

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 no active CoinGecko listing / rank


Young tokens have high risks of price dump / death


Young tokens have high risks of price dump / death


Young tokens have high risks of price dump / death

Price for GENI

News for GENI