Q2 2026 Security & Compliance Report67 incidents, $764M in losses, 88% from operational failures.
Get the report →

Audit name:

[SCA] Krea8te | KR8-Token | May2024

Date:

Jul 12, 2024

Table of Content

→Introduction
→Audit Summary
→System Overview
→Risks
→Findings
→Appendix 1. Severity Definitions
→Appendix 2. Scope
→Disclaimer

Want a comprehensive audit report like this?

Introduction

We express our gratitude to the Krea8te team for the collaborative engagement that enabled the execution of this Smart Contract Security Assessment.

Krea8te is transforming the art market with NFTs, fractional ownership, and DeFi.

Document

NameSmart Contract Code Review and Security Analysis Report for Krea8te
Audited ByKornel Światłowski
Approved ByPrzemyslaw Swiatowiec
Websitehttps://www.krea8te.io/→
Changelog17/06/2024 - Preliminary Report; 12/07/2024 - Final Report
PlatformPolygon
LanguageSolidity
TagsERC20, Vesting
Methodologyhttps://hackenio.cc/sc_methodology→
  • Document

    Name
    Smart Contract Code Review and Security Analysis Report for Krea8te
    Audited By
    Kornel Światłowski
    Approved By
    Przemyslaw Swiatowiec
    Changelog
    17/06/2024 - Preliminary Report; 12/07/2024 - Final Report
    Platform
    Polygon
    Language
    Solidity
    Tags
    ERC20, Vesting

Review Scope

Repositoryhttps://github.com/sastanaqqam-s/BLOO-token→
Initial Review Commit6c711b4f09728947225468b0a6897f1350551997
Secondary Review Commit845b289c381370ab4ae07f345f5c7b7e482595c4

Audit Summary

20Total Findings
12Resolved
8Accepted
0Mitigated

The system users should acknowledge all the risks summed up in the risks section of the report

Documentation quality

  • Functional requirements are present, but only at a high-level.

  • Technical description have some gaps.

Code quality

  • The development environment is configured.

  • Insufficient Gas modeling.

Test coverage

Code coverage of the project is 100% (branch coverage).

  • Deployment and basic user interactions are covered with tests.

System Overview

The KR8 contract is a simple ERC-20 token without initial supply. Minting is only allowed to address stored inside vestingContract variable.  It has the following attributes:

  • Name: KR8

  • Symbol: KR8

  • Decimals: 18

  • Total supply: 5000000_000 tokens.

The Inventory contract manages token distribution across multiple categories with distinct vesting and locking periods. It tracks the distribution schedule, and enforces whitelisting addresses for certain actions.

The Vesting contract, inheriting from Inventory and ReentrancyGuard, manages the distribution of tokens through a vesting schedule. It ensures tokens are released in stages according to predefined categories and locking periods, with functionality to whitelist addresses and initiate token transfers.

Privileged roles

The BLUEToken contract uses a custom implementation of the owner mechanism. Owner address can transfer ownership of contract and change address of vesting contract.

The Vesting contract contains a custom implementation of a whitelist mechanism assigned during contract deployment. Whitelisted addresses can start the tokenization process and release newly minted tokens to a given address.

Risks

Centralized Minting to a Single Address: The project concentrates minting tokens in a single address, raising the risk of fund mismanagement or theft, especially if key storage security is compromised.

Absence of a Token Burn Mechanism: The project lacks a mechanism to burn tokens, facing challenges in managing supply dynamically, affecting the token's value stability and inflation control.

Centralized Control of Minting Process: The token contract’s design allows for centralized control over the minting process, posing a risk of unauthorized token issuance, potentially diluting the token value and undermining trust in the project's economic governance.

Control Risks from Whitelist Users: Granting significant control to whitelist users without adequate checks leads to unpredictable operational disruptions, impacting user confidence and system stability.

Findings

F-2024-3904Tokens Vesting Period Shortened Due to Incorrect Base Unit Calculation
Status
fixed
Severity

High
F-2024-3917Contract Owner Can Modify Vesting Schedules and Mint Unlimited Tokens
Status
fixed
Severity

Medium
F-2024-3903Missing Case in _checkVestedPeriod() Calculation Can Lead to Unreleasable KR8 Tokens
Status
fixed
Severity

Medium
F-2024-3905Missing Input Validation in Vesting Constructor
Status
fixed
Severity

Low
F-2024-3901Inconsistent Initialization and Update of releasedToken Field in Category Struct
Status
accepted
Severity

Low
F-2024-4204Inaccurate Comments on Whitelisted Access for Token Release Functions
Status
fixed
Severity

Observation
F-2024-3939Redundant Fields in Category Struct Increase Deployment Costs
Status
accepted
Severity

Observation
F-2024-3918 Critical Functions Lack Emitting Events
Status
fixed
Severity

Observation
F-2024-3914State Variables Set Only in the Constructor Should Be Declared Immutable
Status
accepted
Severity

Observation
F-2024-3908Redundant Data Storage in Vesting::_mintTokens()
Status
accepted
Severity

Observation
Code
―
Title
Status
Severity
F-2024-3904Tokens Vesting Period Shortened Due to Incorrect Base Unit Calculation
fixed

High
F-2024-3917Contract Owner Can Modify Vesting Schedules and Mint Unlimited Tokens
fixed

Medium
F-2024-3903Missing Case in _checkVestedPeriod() Calculation Can Lead to Unreleasable KR8 Tokens
fixed

Medium
F-2024-3905Missing Input Validation in Vesting Constructor
fixed

Low
F-2024-3901Inconsistent Initialization and Update of releasedToken Field in Category Struct
accepted

Low
F-2024-4204Inaccurate Comments on Whitelisted Access for Token Release Functions
fixed

Observation
F-2024-3939Redundant Fields in Category Struct Increase Deployment Costs
accepted

Observation
F-2024-3918 Critical Functions Lack Emitting Events
fixed

Observation
F-2024-3914State Variables Set Only in the Constructor Should Be Declared Immutable
accepted

Observation
F-2024-3908Redundant Data Storage in Vesting::_mintTokens()
accepted

Observation
1-10 of 20 findings

Identify vulnerabilities in your smart contracts.

Appendix 1. Severity Definitions

When auditing smart contracts, Hacken is using a risk-based approach that considers Likelihood, Impact, Exploitability and Complexity metrics to evaluate findings and score severities.

Reference on how risk scoring is done is available through the repository in our Github organization:

Severity

Description

Critical
Critical vulnerabilities are usually straightforward to exploit and can lead to the loss of user funds or contract state manipulation.

High
High vulnerabilities are usually harder to exploit, requiring specific conditions, or have a more limited scope, but can still lead to the loss of user funds or contract state manipulation.

Medium
Medium vulnerabilities are usually limited to state manipulations and, in most cases, cannot lead to asset loss. Contradictions and requirements violations. Major deviations from best practices are also in this category.

Low
Major deviations from best practices or major Gas inefficiency. These issues will not have a significant impact on code execution, do not affect security score but can affect code quality score.
  • Severity

    Critical

    Description

    Critical vulnerabilities are usually straightforward to exploit and can lead to the loss of user funds or contract state manipulation.

    Severity

    High

    Description

    High vulnerabilities are usually harder to exploit, requiring specific conditions, or have a more limited scope, but can still lead to the loss of user funds or contract state manipulation.

    Severity

    Medium

    Description

    Medium vulnerabilities are usually limited to state manipulations and, in most cases, cannot lead to asset loss. Contradictions and requirements violations. Major deviations from best practices are also in this category.

    Severity

    Low

    Description

    Major deviations from best practices or major Gas inefficiency. These issues will not have a significant impact on code execution, do not affect security score but can affect code quality score.

Appendix 2. Scope

The scope of the project includes the following smart contracts from the provided repository:

Scope Details

Repositoryhttps://github.com/sastanaqqam-s/BLOO-token→
Initial Review Commit6c711b4f09728947225468b0a6897f1350551997
Secondary Review Commit845b289c381370ab4ae07f345f5c7b7e482595c4
Whitepaperhttps://sastanaqqam.gitbook.io/sastanaqqam→
Requirementshttps://sastanaqqam.gitbook.io/sastanaqqam/tokenomics/bloo→
Technical Requirementshttps://sastanaqqam.gitbook.io/sastanaqqam/tokenomics/bloo→

Contracts in Scope

smart_contract
smart_contract
contracts
Vesting.sol - smart_contract › smart_contract › contracts › Vesting.sol
BLUEToken.sol - smart_contract › smart_contract › contracts › BLUEToken.sol
Inventory
Inventory.sol - smart_contract › smart_contract › contracts › Inventory › Inventory.sol
Interface
IBLUEToken.sol - smart_contract › smart_contract › contracts › Interface › IBLUEToken.sol

Disclaimer