Quantum Audit Logo
Launch App

On-chain security analysis — is it a scam or legit?

Is Holoworld AI Safe?

HOLOBNB Chain
Not verified This record has not gone through deep verification and is not being monitored. The score is a dated snapshot — the token’s risk can change at any time.Own this token? Put it under verification →
Last checked Sep 4, 2026 · 1 audit on record
SummaryAI Copilot

The HoloToken contract, an ERC20 token utilizing OpenZeppelin's AccessControl, was audited for security vulnerabilities.

Read the full analysis
What raised the score
  • Ownership status UNKNOWN
  • Mintable supply — no cap found, dilution unbounded
  • Top-10 concentration > 30%
  • Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
  • LP top1 unlocked holder = 100.0%
  • LP top3 unlocked holders = 100.0%
  • 1 High finding(s) from audit
  • 1 Medium finding(s) from audit
  • 1 Low finding(s) from audit
Exact factors
  • Ownership status UNKNOWN (owner could not be resolved)
  • Mintable supply — no cap found, dilution unbounded
  • Top-10 concentration > 30% (95.9% total → 41.3% effective; 4.8% in EOAs, 91.1% in contracts — moderate)
  • Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
  • LP top1 unlocked holder = 100.0% (independent LP — depth risk, pool = 99% of DEX liquidity)
  • LP top3 unlocked holders = 100.0% (independent LP — depth risk, pool = 99% of DEX liquidity)
  • 1 High finding(s) from audit
  • 1 Medium finding(s) from audit
  • 1 Low finding(s) from audit

Each factor is an on-chain fact recorded at the time of this analysis. The score is computed from them by a deterministic function, so the same contract returns the same score for anyone who runs the audit. How scores are computed

Security Checklist

as of audit · Sep 42 of 5 checks passed
Contract verifiedVerified
OwnershipUnknown
MintMintable
Liquidity lockNot locked
UpgradeabilityFixed code

Holders

as of audit · Sep 4, 2026
91.1%Contracts4.8%4.1%
91.1%Contracts4.8%4.1%
ContractsWalletsEveryone elseBubble area = share of supply
95.9%of supply sits with the top 10 holders
  • Contractstreasury, vesting, bridge, staking91.1%
  • Walletsanonymous holders, free to sell4.8%
  • Everyone elsethe rest of the supply4.1%
Effective concentrationwhat the score reads41.3%
How holder types affect the score

Share held by contracts — treasury, vesting, bridge or staking — is discounted against share held by wallets when the score is computed: a contract cannot decide to sell the way an anonymous holder can, though it can still be drained or voted to sell. Effective concentration is the figure the risk score is actually calculated from.

Holder balances as recorded by the audit of Sep 4, 2026

Liquidity

as of audit · Sep 4$513.4K across 4 pairs
LP tokensNot locked

The LP tokens of the analysed pool are not locked or burned, so whoever holds them can withdraw that liquidity.

Analysed pool$509.2KShare of depth99.2%
Top-1 Unlocked Holder100.0%
Top-3 Unlocked100.0%
Unlocked LP held by
0x9a92…b7840x6f9d…abd50x371f…2a35

No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.

Security Findings

1 High1 Medium1 Low1 Info
High

PAUSER_ROLE Self-Management Allows Privilege Escalation

The _setRoleAdmin(PAUSER_ROLE, PAUSER_ROLE) configuration in the constructor allows any account holding the PAUSER_ROLE to grant or revoke PAUSER_ROLE to/from other addresses. This bypasses the oversight of the DEFAULT_ADMIN_ROLE and ADMIN_ROLE for managing pausers. A compromised PAUSER could add more malicious PAUSERs or remove legitimate ones, effectively taking full control of the pausing mechanism without higher administrative approval (7.3 Access Control).H-01

Issue

The _setRoleAdmin(PAUSER_ROLE, PAUSER_ROLE) configuration in the constructor allows any account holding the PAUSER_ROLE to grant or revoke PAUSER_ROLE to/from other addresses. This bypasses the oversight of the DEFAULT_ADMIN_ROLE and ADMIN_ROLE for managing pausers. A compromised PAUSER could add more malicious PAUSERs or remove legitimate ones, effectively taking full control of the pausing mechanism without higher administrative approval (7.3 Access Control).

Fix

Change the admin role for PAUSER_ROLE to a higher-level administrative role, such as DEFAULT_ADMIN_ROLE or ADMIN_ROLE. For example, _setRoleAdmin(PAUSER_ROLE, ADMIN_ROLE); would ensure that only accounts with ADMIN_ROLE can manage the PAUSER_ROLE.

Status

Unresolved

Medium

High Centralization of Control

The contract design relies heavily on privileged roles (DEFAULT_ADMIN_ROLE, ADMIN_ROLE, PAUSER_ROLE, MINTER_ROLE). These roles have significant power, including managing other roles, minting tokens up to the maximum supply, and controlling all token transfers (pausing/unpausing, whitelisting). If the private keys associated with these roles (especially if they are EOAs) are compromised, it could lead to severe consequences such as arbitrary minting, denial of service for transfers, or loss of funds (7.5 Governance, 7.8 Operations).M-01

Issue

The contract design relies heavily on privileged roles (DEFAULT_ADMIN_ROLE, ADMIN_ROLE, PAUSER_ROLE, MINTER_ROLE). These roles have significant power, including managing other roles, minting tokens up to the maximum supply, and controlling all token transfers (pausing/unpausing, whitelisting). If the private keys associated with these roles (especially if they are EOAs) are compromised, it could lead to severe consequences such as arbitrary minting, denial of service for transfers, or loss of funds (7.5 Governance, 7.8 Operations).

Fix

For critical roles, consider assigning them to multi-signature wallets or robust governance contracts instead of single externally owned accounts (EOAs). This distributes control and requires multiple approvals for sensitive operations, significantly reducing the risk of a single point of failure.

Status

Unresolved

Low

Initial Role Assignments to EOAs

The constructor assigns DEFAULT_ADMIN_ROLE to msg.sender and ADMIN_ROLE/PAUSER_ROLE to initialAdmin/initialPauser addresses. If these are externally owned accounts (EOAs), they represent single points of failure. A compromise of any of these EOAs could lead to unauthorized control over critical contract functions (7.8 Operations).L-01

Issue

The constructor assigns DEFAULT_ADMIN_ROLE to msg.sender and ADMIN_ROLE/PAUSER_ROLE to initialAdmin/initialPauser addresses. If these are externally owned accounts (EOAs), they represent single points of failure. A compromise of any of these EOAs could lead to unauthorized control over critical contract functions (7.8 Operations).

Fix

While common for initial deployment, it is best practice to transfer ownership of critical roles (especially DEFAULT_ADMIN_ROLE) to a multi-signature wallet or a well-tested governance contract immediately after deployment. This enhances security by requiring multiple approvals for sensitive actions.

Status

Unresolved

Info

Redundant require in setTransfersEnabled

The setTransfersEnabled function includes require(transfersEnabled != status, "HoloToken: status not changed");. This check prevents setting the transfersEnabled state variable to its current value. While not harmful, this check is redundant as setting a state variable to its current value has no effect and consumes gas unnecessarily (7.2 Code Security).I-01

Issue

The setTransfersEnabled function includes require(transfersEnabled != status, "HoloToken: status not changed");. This check prevents setting the transfersEnabled state variable to its current value. While not harmful, this check is redundant as setting a state variable to its current value has no effect and consumes gas unnecessarily (7.2 Code Security).

Fix

Consider removing this require statement, as setting a variable to its existing value is a no-op and does not introduce a vulnerability. Alternatively, if the intent is to provide a more specific error, the message could be improved (e.g., 'Transfers are already enabled' or 'Transfers are already disabled').

Status

Unresolved

Analysis

AI Copilotas of audit · Sep 4
Executive SummaryWhat the contract is and what the review found

The HoloToken contract, an ERC20 token utilizing OpenZeppelin's AccessControl, was audited for security vulnerabilities. The contract implements custom roles for administration, pausing, and minting, along with a maximum supply and transfer control mechanisms. Key findings include a high-severity access control misconfiguration allowing PAUSER_ROLE self-management, and medium-severity centralization risks due to powerful privileged roles. The contract demonstrates good use of established libraries and clear logic, but the identified access control and centralization issues warrant immediate attention to enhance the protocol's security posture.

Technical6/10Medium risk

The contract leverages battle-tested OpenZeppelin libraries for ERC20 and AccessControl, enhancing code security and adherence to standards (7.2 Code Security). The _update override correctly implements conditional transfer logic based on transfersEnabled and transferWhitelist (7.1 Architecture). However, a significant access control misconfiguration allows any PAUSER_ROLE member to manage other PAUSER_ROLE members, bypassing higher administrative oversight (7.3 Access Control). This creates a privilege escalation risk within the pauser group.

Governance1/10High risk

The token implements a clear MAX_SUPPLY and controlled minting via the MINTER_ROLE, providing transparency on token issuance (7.4 Economic). However, the system exhibits high centralization, with critical functions like minting, pausing transfers, and managing roles controlled by specific privileged addresses (7.5 Governance). If these addresses are EOAs and become compromised, it poses a substantial risk to the protocol's integrity and user funds (7.8 Operations).

Upgrades3/10High risk

The contract is not designed with an upgrade mechanism (e.g., proxy pattern). Therefore, there are no upgrade-specific risks (7.7 Upgrades). Any future changes to the contract logic would require a new deployment and migration of assets.

Final RecommendationWhat to do about this score

It is strongly recommended to address the identified access control misconfiguration for the PAUSER_ROLE to prevent potential privilege escalation.

Review the role hierarchy and ensure that critical role management is overseen by higher-level administrative roles, ideally secured by multi-signature wallets or robust governance mechanisms. Furthermore, consider assigning critical administrative roles to multi-signature wallets or governance contracts instead of single externally owned accounts (EOAs) to mitigate centralization risks and enhance operational security. Implement comprehensive testing, especially for access control logic, to validate the intended permissions and prevent unintended behaviors.

Contract & Record

1 audit on record
TypeHoloToken
NetworkBNB Chain
Token age11mo
Contract0x1a5d…9497
Deployer0x335b…c0dc
Badge for your website
Holoworld AI security record badge

Free for any token on the record. It links to this page and always shows the current score and the date it was checked.

Audit History
  1. Sep 4, 202667High
  2. Aug 12, 202647Medium

Score changes are recorded as dated snapshots — history is append-only and cannot be edited.

Would You Like a More Detailed Audit of Holoworld AI?

Our AI-powered scanner gives you a deeper, real-time smart contract analysis — free, with every scoring factor shown.

Get Detailed Audit Is this your token? Publish your own audit on this page