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

Audit name:

[SCA] Dubadu | ForeversToken | Sep2026

Date:

Sep 10, 2026

Table of Content

→Introduction
→Audit Summary
→System Overview
→Potential Risks
→Findings
→Appendix 1. Definitions
→Appendix 2. Scope
→Appendix 3. Additional Valuables
→Disclaimer

Want a comprehensive audit report like this?

Introduction

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

FOREVERS is a non-upgradeable ERC-20 token on Ethereum. Holders transfer FRVRS under a fixed 0.1% levy on EOA-to-EOA movements, further issuance is gated to a designated minter under a 150 billion token cap, and approvals can be granted through EIP-2612 permit. The audit covered ForeversToken and the shared ForeversConstants library.

Document

NameSmart Contract Code Review and Security Analysis Report for Dubadu
Audited ByKerem Solmaz
Approved ByOlesia Bilenka
Websiteforevers.market
Changelog09/09/2026 - Preliminary Report
10/09/2026 - Final Report
PlatformEthereum
LanguageSolidity
TagsFungible Token, Permit Token, Token Standards, Centralization, Signatures
Methodologyhttps://docs.hacken.io/methodologies/smart-contracts→
  • Document

    Name
    Smart Contract Code Review and Security Analysis Report for Dubadu
    Audited By
    Kerem Solmaz
    Approved By
    Olesia Bilenka
    Website
    forevers.market
    Changelog
    09/09/2026 - Preliminary Report
    10/09/2026 - Final Report
    Platform
    Ethereum
    Language
    Solidity
    Tags
    Fungible Token, Permit Token, Token Standards, Centralization, Signatures

Audit Summary

5Total Findings
0Resolved
5Accepted
0Mitigated

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

Documentation quality

  • The repository README is an unmodified GitLab template and does not describe the protocol, deployment model, or token economics.

  • In-scope files carry NatSpec on the public surface, including the fixed transfer levy, minter locks, and fee-authority locks. Several constants in ForeversConstants document rules that belong to out-of-scope modules and are not enforced by ForeversToken.

Code quality

  • The implementation uses Solidity 0.8.28 with OpenZeppelin ERC-20, ERC-20Capped, and ERC-20Permit.

  • Access checks are inline rather than modifiers, inheritance is limited to the token stack plus the project interface, and the token is not proxied. Several business logic issues related to missing edge cases were identified and reported.

Test coverage

  • Line coverage of ForeversToken stands at 100% (83 of 83 lines; 95 of 95 statements; 25 of 25 branches) as measured by the Foundry coverage tool against the 52-test token suite.

  • ForeversConstants contains compile-time constants only and has no executable lines to cover. The provided repository omits Foundry configuration and vendor libraries, so this figure was obtained by reconstituting that toolchain with OpenZeppelin v5.2.0. Separate fuzz and invariant files exist for the fee path.

System Overview

FOREVERS is a capped ERC-20 named Forevers with symbol FRVRS and 18 decimals. Construction mints 1.5 billion tokens to a non-zero open-market address and records a non-zero fee treasury. The remaining supply up to 150 billion tokens can be created only by the stored minter. The token is not proxied and exposes no pause, blacklist, or burn interface.

ForeversToken inherits OpenZeppelin ERC-20, ERC-20Capped, and ERC-20Permit. The immutable deployer may assign and freeze the minter and the fee authority while those pointers are unlocked. The first successful mint also freezes the minter pointer. Only the minter may mint under the cap or permanently revoke minting. Only the fee authority may rotate the fee treasury. Standard transfers, transfer-from, approve, and permit remain public.

A ten basis point levy is applied inside the balance-update hook when both counterparties have empty code, the movement is not a mint or burn, and the recipient is not the fee treasury. The levy is credited to the treasury and the remainder to the recipient through inner updates that do not re-enter the hook. Transfers that involve a contract, the treasury as recipient, or mint and burn move the full amount.

Out of scope but interacting after wiring: Emission is the intended minter, EmissionMultisig is the intended fee authority, and FreezeLock pulls FRVRS through ordinary ERC-20 transfers. ForeversConstants supplies the hard cap, initial mint, and basis-point denominator used by the token, plus lock duration, signer layout, and emission stage bounds used by those other contracts.

Privileged Roles

  • Deployer: Assigned immutably to the constructor caller. While the matching lock is unset, this role can assign the minter and the fee authority and can freeze those pointers after a non-zero address is stored. After both locks, the deployer has no remaining writers on this contract. Compromise before lock allows retargeting of mint authority and fee-treasury control. The token does not wrap this key in a timelock or on-chain quorum.

  • Minter: A single stored address. This role can mint any amount up to the remaining cap and can permanently revoke further minting. The token does not enforce emission stages. Compromise after lock allows minting of the unused cap or an early revoke that ends issuance.

  • Fee authority: A single stored address,This role can rotate the fee treasury to any non-zero address with immediate effect. Prior treasury balances are not moved. The token does not enforce a signer count or delay on that rotation.

Potential Risks

Scope Definition and Security Guarantees: The audit covers ForeversToken and ForeversConstants only. The repository also contains Emission, EmissionMultisig, and FreezeLock. Those contracts are the intended minter, fee authority, and lockbox after wiring. Defects in their authorization can still drive minting, minter revocation, and fee-treasury rotation on the in-scope token.

System Reliance on External Contracts: After the deployer assigns the minter and fee authority, remaining issuance and levy routing on ForeversToken are driven by those stored addresses. The intended minter is Emission and the intended fee authority is EmissionMultisig, both outside this review. A defect or key compromise in those contracts can mint up to the unused cap, permanently end issuance, or redirect future transfer levies.

Centralized Minting to a Single Address: Post-deploy issuance on ForeversToken is gated to one minter address. The constructor mints 1.5 billion tokens to the open-market recipient. The remainder up to 150 billion tokens is mintable by that minter with no on-chain schedule or quorum inside the token.

Absence of a Token Burn Mechanism: ForeversToken has no burn path. The transfer levy moves tokens to the fee treasury and does not destroy them. Supply can stay flat or increase up to the cap.

Owner's Unrestricted State Modification: While the matching lock is unset, the deployer of ForeversToken may assign the minter and the fee authority to any non-zero address. There is no allowlist, bytecode check, or interface check. A mistaken or malicious assignment before lock can grant minting of the unused cap or control of levy routing to an unintended address.

Coarse-grained Authorization Model Risks: Each privileged role on ForeversToken is a single address with full power over its surface. The minter can both mint any amount up to the remaining cap and permanently revoke minting. The fee authority can rotate the treasury to any non-zero address with immediate effect. Compromise of either address is sufficient for the full matching action set.

Absence of Time-lock Mechanisms for Critical Operations: Minter assignment, minter lock, fee-authority assignment, fee-authority lock, treasury rotation, mint, and minter revoke complete in the calling transaction. Holders have no on-chain delay in which to observe a pointer change or a large mint.

Insufficient Multi-signature Controls for Critical Functions: Every privileged check on ForeversToken compares the caller to one stored address. The token does not require a quorum. A 2-of-3 layout exists only as unused constants in ForeversConstants and as the intended out-of-scope EmissionMultisig after wiring.

Single Points of Failure and Control: Until locks, the deployer can replace the minter and the fee authority. After wiring, the minter alone can mint the remaining cap or end issuance, and the fee authority alone can redirect future levies. Key custody cannot be verified from the token bytecode.

Administrative Key Control Risks: The deployer is the constructor caller, typically a single key. While unlocked, that key can point mint and fee-authority slots at any non-zero address. After intended wiring those slots may hold out-of-scope contracts, but the token stores addresses only and does not require a multisig implementation.

Findings

F-2026-1927Empty-Code Check Exempts Delegated Accounts From The Transfer Fee
Status
accepted
Severity

Medium
F-2026-1929Missing Self-Address Check In Fee Treasury Results In Unrecoverable Fees
Status
accepted
Severity

Low
F-2026-1929Missing Sender Check Against Fee Treasury In _update
Status
accepted
Severity

Observation
F-2026-1927Missing Revocation Check In Minter Assignment Emits A Minter Address That Can Never Mint
Status
accepted
Severity

Observation
F-2026-1927Unreferenced Constants And Duplicated Declarations Leave Documented Rules Unenforced
Status
accepted
Severity

Observation
Code
―
Title
Status
Severity
F-2026-1927Empty-Code Check Exempts Delegated Accounts From The Transfer Fee
accepted

Medium
F-2026-1929Missing Self-Address Check In Fee Treasury Results In Unrecoverable Fees
accepted

Low
F-2026-1929Missing Sender Check Against Fee Treasury In _update
accepted

Observation
F-2026-1927Missing Revocation Check In Minter Assignment Emits A Minter Address That Can Never Mint
accepted

Observation
F-2026-1927Unreferenced Constants And Duplicated Declarations Leave Documented Rules Unenforced
accepted

Observation
1-5 of 5 findings

Identify vulnerabilities in your smart contracts.

Appendix 1. Definitions

Severities

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.
  • 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.

Potential Risks

The "Potential Risks" section identifies issues that are not direct security vulnerabilities but could still affect the project’s performance, reliability, or user trust. These risks arise from design choices, architectural decisions, or operational practices that, while not immediately exploitable, may lead to problems under certain conditions. Additionally, potential risks can impact the quality of the audit itself, as they may involve external factors or components beyond the scope of the audit, leading to incomplete assessments or oversight of key areas. This section aims to provide a broader perspective on factors that could affect the project's long-term security, functionality, and the comprehensiveness of the audit findings.

Appendix 2. Scope

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

Scope Details

Repositoryhttps://gitlab.com/dubadu-portal-llc-group/contracts/-/tree/main→
Commit1be3f5232f4054adaf02b847150496fc3bbbd90a
Whitepaperforevers.market/whitepaper
RequirementsNatSpec
Technical RequirementsNatSpec

Assets in Scope

constants
ForeversConstants.sol - constants › ForeversConstants.sol
ForeversToken.sol - ForeversToken.sol

Appendix 3. Additional Valuables

Additional Recommendations

The smart contracts in the scope of this audit could benefit from the introduction of automatic emergency actions for critical activities, such as unauthorized operations like ownership changes or proxy upgrades, as well as unexpected fund manipulations, including large withdrawals or minting events. Adding such mechanisms would enable the protocol to react automatically to unusual activity, ensuring that the contract remains secure and functions as intended.

To improve functionality, these emergency actions could be designed to trigger under specific conditions, such as:

  • Detecting changes to ownership or critical permissions.

  • Monitoring large or unexpected transactions and minting events.

  • Pausing operations when irregularities are identified.

These enhancements would provide an added layer of security, making the contract more robust and better equipped to handle unexpected situations while maintaining smooth operations.

Frameworks and Methodologies

This security assessment was conducted in alignment with recognised penetration testing standards, methodologies and guidelines, including the NIST SP 800-115 – Technical Guide to Information Security Testing and Assessment →, and the Penetration Testing Execution Standard (PTES) →, These assets provide a structured foundation for planning, executing, and documenting technical evaluations such as vulnerability assessments, exploitation activities, and security code reviews. Hacken’s internal penetration testing methodology extends these principles to Web2 and Web3 environments to ensure consistency, repeatability, and verifiable outcomes.

Disclaimer