- ERC20 transfer and transferFrom
- ERC20 name, decimals, and symbol functions
- ERC20 decimals returns a uint8
- ERC20
approve
race-condition - ERC777 hooks
- Token Deflation via fees
- Token Inflation via interest
- Token contract avoids unneeded complexity
- Token contract has only a few non–token-related functions
- Token only has one address
- Token is not upgradeable
- Token owner has limited minting capabilities
- Token is not pausable
- Token owner cannot blacklist the contract
- Token development team is known and can be held responsible for abuse
- No token user owns most of the supply
- Token total supply is sufficient
- Tokens are located in more than a few exchanges
- Token balance and Flash loans
- Token does not allow flash minting
- ERC1400 permissioned addresses
- ERC1400 forced transfers
- ERC1644 forced transfers
- ERC621 control of totalSupply
- ERC884 cancel and reissue
- ERC884 whitelisting
- Guarded launch via asset limits
- Guarded launch via asset types
- Guarded launch via user limits
- Guarded launch via usage limits
- Guarded launch via composability limits
- Guarded launch via escrows
- Guarded launch via circuit breakers
- Guarded launch via emergency shutdown
- System specification
- System documentation
- Function parameters
- Function arguments
- Function visibility
- Function modifiers
- Function return values
- Function invocation timeliness
- Function invocation repetitiveness
- Function invocation order
- Function invocation arguments
- Conditionals
- Access control specification
- Access control implementation
- Missing modifiers
- Incorrectly implemented modifiers
- Incorrectly used modifiers
- Access control changes
- Comments
- Tests
- Unused constructs
- Redundant constructs
- ETH Handling
- Token Handling
- Trusted actors
- Privileged roles and EOAs
- Two-step change of privileged roles
- Time-delayed change of critical parameters
- Explicit over Implicit
- Configuration issues
- Initialization issues
- Cleanup issues
- Data processing issues
- Data validation issues
- Numerical issues
- Accounting issues
- Access control issues
- Auditing-logging issues
- Cryptography issues
- Error-reporting issues
- Denial-of-Service (DoS) issues
- Timing issues
- Ordering issues
- Undefined behavior issues
- External interaction issues
- Trust issues
- Gas issues
- Dependency issues
- Constant issues
- Freshness issues
- Scarcity issues
- Incentive issues
- Clarity issues
- Privacy issues
- Cloning issues
- Business logic issues
- Principle of Least Privilege
- Principle of Separation of Privilege
- Principle of Least Common Mechanism
- Principle of Fail-safe Defaults
- Principle of Complete Mediation
- Principle of Economy of Mechanism
- Principle of Open Design
- Principle of Psychological Acceptability
- Principle of Work Factor
- Principle of Compromise Recording