Good Games Guild Token - Smart Contract Audit Report


Good Games Guild Audit Report Good Games Guild Token ($GGG) is a new ERC20 token on the Binance Smart Chain.

We reviewed the Good Games Guild Token contract at 0xD8047AFECB86e44eFf3aDd991B9F063eD4ca716B on the Binance Smart Chain Mainnet.

Notes on the Contract:
  • The total supply of the token is set to 100 million $GGG.
  • At the time of writing this report, the entire $GGG token supply is stored in the owner's wallet address.
  • Token holders can use the burn function to transfer an amount of their tokens to the zero address, reducing the circulating total supply.
  • Token holders can alternatively transfer tokens to the 0x...Dead address to burn their tokens. However, using this method will not be reflected in the total supply and it will not be updated.
  • If an address has approval to spend tokens on another's behalf, that address can opt to burn tokens from the account that has provided the approval.
  • There are no additonal minting functions available after deployment.

  • Although the contract inherits the Ownable library, no ownership-restriction functions are present.
  • The contract complies with the ERC20 standard.
  • As the project is deployed with Solidity v0.8.0, it is protected from overflows.
Audit Findings Summary
  • No external threats were identified.
  • Please ensure trust in the team prior to investing as they currently possess the entire token supply.
  • Date: October 4th, 2021

Audit Results

Vulnerability CategoryNotesResult
Arbitrary Storage WriteN/APASS
Arbitrary JumpN/APASS
Delegate Call to Untrusted ContractN/APASS
Dependence on Predictable VariablesN/APASS
Deprecated OpcodesN/APASS
Ether ThiefN/APASS
External CallsN/APASS
Integer Over/UnderflowN/APASS
Multiple SendsN/APASS
State Change External CallsN/APASS
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

Function Graph

ERC20 Token Graph

Inheritence Chart

Multi-file Token

Functions Overview

 ($) = payable function
 # = non-constant function
  +  Context 
    - [Int]  #
    - [Int] _msgSender
    - [Int] _msgData

 +  Ownable (Context)
    - [Int]  #
    - [Pub] owner
    - [Pub] renounceOwnership #
       - modifiers: onlyOwner
    - [Pub] transferOwnership #
       - modifiers: onlyOwner

 + [Int] IERC20 
    - [Ext] totalSupply
    - [Ext] balanceOf
    - [Ext] transfer #
    - [Ext] allowance
    - [Ext] approve #
    - [Ext] transferFrom #

 + [Lib] SafeMath 
    - [Int] add
    - [Int] sub
    - [Int] sub
    - [Int] mul
    - [Int] div
    - [Int] div
    - [Int] mod
    - [Int] mod

 + [Lib] Address 
    - [Int] isContract
    - [Int] sendValue #

 +  ERC20 (Context, IERC20)
    - [Pub]  #
    - [Pub] name
    - [Pub] symbol
    - [Pub] decimals
    - [Pub] totalSupply
    - [Pub] balanceOf
    - [Pub] transfer #
    - [Pub] allowance
    - [Pub] approve #
    - [Pub] transferFrom #
    - [Pub] increaseAllowance #
    - [Pub] decreaseAllowance #
    - [Int] _transfer #
    - [Int] _mint #
    - [Int] _burn #
    - [Int] _approve #
    - [Int] _setupDecimals #
    - [Int] _beforeTokenTransfer #

 +  ERC20Burnable (Context, ERC20)
    - [Pub] burn #
    - [Pub] burnFrom #

 +  GoodGameGuildToken (Ownable, ERC20Burnable)
    - [Pub]  #
       - modifiers: Ownable,ERC20