Debt Free Token - Smart Contract Audit Report

Summary

Debt Free Token Finance Audit Report Debt Free Token is a deflationary token with frictionless fee redistribution on the Binance Smart Chain.

We audited Debt Free Token's token contract, deployed at 0x44f2a124de7dbe2b1b15dbb0c1d79958eb999abd on the BSC mainnet.

Notes on the Contract:
  • The total supply of the token is set to 100 quadrillion $DEBTFREE [100,000,000,000,000].
  • No minting or direct burn functions are present; though the circulating supply can be reduced by sending tokens to the 0x..dead address, if desired.
  • At the time of writing this report, 81.73% of the total supply has been burned.
  • The Deployer/Owner is in possession of 15.92% of the total supply, which is equal to 87.15% of the circulating supply.
  • 0.23% of the total $DEBTFREE token supply is held in PancakeSwap V2 Liquidity.
  • Out of that liquidity, 99.85% of the LP tokens have been burned.

  • There is a 'Tax Fee', 'Burn Fee', and 'Charity Fee' that is charged on all transactions for any address that participates in a transfer. The owner has the ability to modify each fee to any percentage between 0% and 99% at any time.
  • Token holders that are "included" (in rewards) will automatically benefit from frictionless fee redistribution at the time of each transaction as the tokens collected through the "tax fee" are removed from the circulating supply.
  • The "Burn Fee" that is charged on transfers will immediately burn that percentage of tokens and send them to the zero address and reduce the total token supply. At the time of writing this report, 0.05% of the original total supply has been sent to the zero address.
  • In addition to this burn fee, the 0xDead... (burn address) is included in the fee redistribution, therefore it receives over 80% (and growing) of the benefit from the "Tax Fee" that is collected. This will cause the burn address balance to continue to increase over time.
  • The tokens that are taxed from the "Charity Fee" that is charged on transfers are sent directly to the "Charity Wallet".
  • As the project is deployed with Solidity version ^0.8.2, it is protected from overflows.
  • The contract utilizes SafeMath libraries along with following the BEP20 standard.

  • Ownership Controls
  • Ownership has not been renounced.
  • The owner has the ability to exclude and include accounts from fees and reward distribution.
  • The owner has the ability to modify the the 'Tax Fee', 'Burn Fee', and 'Charity Fee' to any percentage between 0% and 99% at any time.
  • The owner has the ability to update the "Charity Wallet" to a new address at any time.
Audit Findings Summary
  • No external threats were identified.
  • The owner is in possession of 68 times the amount of tokens that are currently held in liquidity.
  • Ensure trust in the team prior to investing as they have significant control within the ecosystem.
  • Date: October 7th, 2021

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
ExceptionsN/APASS
External CallsN/APASS
Flash LoansN/APASS
Integer Over/UnderflowN/APASS
Multiple SendsN/APASS
OraclesN/APASS
SuicideN/APASS
State Change External CallsN/APass
Unchecked RetvalN/APASS
User Supplied AssertionN/APASS
Critical Solidity CompilerN/APASS
Overall Contract Safety PASS

ERC20 Token Graph

Multi-file Token

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

 + [Int] IBEP20 
    - [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 #
    - [Int] functionCall #
    - [Int] functionCall #
    - [Int] functionCallWithValue #
    - [Int] functionCallWithValue #
    - [Prv] _functionCallWithValue #

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

 +  CoinToken (Context, IBEP20, Ownable)
    - [Pub]  ($)
    - [Pub] name
    - [Pub] symbol
    - [Pub] decimals
    - [Pub] totalSupply
    - [Pub] balanceOf
    - [Pub] transfer #
    - [Pub] allowance
    - [Pub] approve #
    - [Pub] transferFrom #
    - [Pub] increaseAllowance #
    - [Pub] decreaseAllowance #
    - [Pub] isExcluded
    - [Pub] totalFees
    - [Pub] totalBurn
    - [Pub] totalCharity
    - [Pub] deliver #
    - [Pub] reflectionFromToken
    - [Pub] tokenFromReflection
    - [Ext] excludeAccount #
       - modifiers: onlyOwner
    - [Ext] includeAccount #
       - modifiers: onlyOwner
    - [Ext] setAsCharityAccount #
       - modifiers: onlyOwner
    - [Pub] updateFee #
       - modifiers: onlyOwner
    - [Prv] _approve #
    - [Prv] _transfer #
    - [Prv] _transferStandard #
    - [Prv] _standardTransferContent #
    - [Prv] _transferToExcluded #
    - [Prv] _excludedFromTransferContent #
    - [Prv] _transferFromExcluded #
    - [Prv] _excludedToTransferContent #
    - [Prv] _transferBothExcluded #
    - [Prv] _bothTransferContent #
    - [Prv] _reflectFee #
    - [Prv] _getValues
    - [Prv] _getTBasics
    - [Prv] getTTransferAmount
    - [Prv] _getRBasics
    - [Prv] _getRTransferAmount
    - [Prv] _getRate
    - [Prv] _getCurrentSupply
    - [Prv] _sendToCharity #
    - [Prv] removeAllFee #
    - [Prv] restoreAllFee #
    - [Prv] _getTaxFee