Quantum Audit Logo
Launch App

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

Is WebKey DAO 2.0 Safe?

WKEYDAO2BNB 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
Critical RiskHow is this score calculated?
SummaryAI Copilot

The wkeyDAO2 contract implements an ERC20 token with EIP-2612 permit functionality and OpenZeppelin's AccessControl.

Read the full analysis
What raised the score
  • Ownership status UNKNOWN
  • Mintable supply — no cap found, dilution unbounded
  • Top-10 concentration > 50%
  • LP top1 unlocked holder = 100.0%
  • LP top3 unlocked holders = 100.0%
  • LP claimed locked but only 0.0% actually locked
  • 1 Critical finding(s) from audit
  • 3 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 > 50% (99.0% total → 63.2% effective; 39.3% in EOAs, 59.8% in contracts — heavy)
  • LP top1 unlocked holder = 100.0% (exit-liquidity risk)
  • LP top3 unlocked holders = 100.0% (exit-liquidity risk)
  • LP claimed locked but only 0.0% actually locked
  • 1 Critical finding(s) from audit
  • 3 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 43 of 5 checks passed
Contract verifiedVerified
OwnershipUnknown
MintMintable
Liquidity lockLocked
UpgradeabilityFixed code

Holders

as of audit · Sep 4, 2026
59.8%Contracts39.3%Wallets1.0%
59.8%Contracts39.3%Wallets
ContractsWalletsEveryone elseBubble area = share of supply
99.0%of supply sits with the top 10 holders
  • Contractstreasury, vesting, bridge, staking59.8%
  • Walletsanonymous holders, free to sell39.3%
  • Everyone elsethe rest of the supply1.0%
Effective concentrationwhat the score reads63.2%
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$12.40M

The risk score reads depth across every pair.

LP tokensLocked

The LP tokens of the analysed pool are locked or burned.

Analysed pool$12.40MShare of depth100.0%
Top-1 Unlocked Holder100.0%
Top-3 Unlocked100.0%
Unlocked LP held by
0xaa20…1dec0x0ed9…97060x1473…24a8

A privileged address — the deployer, the owner, or the token contract itself — is among these holders, so that party can withdraw liquidity.

Security Findings

1 Critical3 Medium1 Low1 Info
Critical

Incomplete onlyVault Modifier Leads to Critical Access Control Flaw

The onlyVault modifier in the VaultOwned contract is truncated (require(ha...). This incomplete code will either cause any function using this modifier to permanently revert upon deployment (if 'ha' is an undeclared variable or invalid expression) or, more critically, could be interpreted by the compiler in a way that bypasses the intended access control entirely, allowing unauthorized execution of restricted functions. This represents a severe vulnerability, compromising the integrity of any function it protects.C-01

Issue

The onlyVault modifier in the VaultOwned contract is truncated (require(ha...). This incomplete code will either cause any function using this modifier to permanently revert upon deployment (if 'ha' is an undeclared variable or invalid expression) or, more critically, could be interpreted by the compiler in a way that bypasses the intended access control entirely, allowing unauthorized execution of restricted functions. This represents a severe vulnerability, compromising the integrity of any function it protects.

Fix

Complete the onlyVault modifier with its intended logic. Ensure the require statement correctly validates the caller's address against a designated vault address or role. If this modifier is not intended for use, it should be removed to prevent unexpected behavior.

Status

Unresolved

Medium

Outdated Solidity Compiler Version

The contract is compiled with Solidity version 0.7.5. While SafeMath is used to prevent integer overflows/underflows, newer compiler versions (0.8.x and above) include native overflow/underflow checks, which can simplify code and potentially reduce gas costs by removing the need for SafeMath library calls. Additionally, older compiler versions may have undiscovered bugs or lack optimizations and security features present in more recent releases.M-01

Issue

The contract is compiled with Solidity version 0.7.5. While SafeMath is used to prevent integer overflows/underflows, newer compiler versions (0.8.x and above) include native overflow/underflow checks, which can simplify code and potentially reduce gas costs by removing the need for SafeMath library calls. Additionally, older compiler versions may have undiscovered bugs or lack optimizations and security features present in more recent releases.

Fix

Consider upgrading the Solidity compiler to a more recent stable version (e.g., 0.8.x or higher). This would allow for the removal of SafeMath and benefit from native overflow checks, improving code readability and potentially security. Thoroughly test the contract after any compiler upgrade.

Status

Unresolved

Medium

Centralized Control Over Critical Roles

The DEFAULT_ADMIN_ROLE is assigned to the contract deployer in the VaultOwned constructor. This grants the deployer significant control over the contract's access control, including the ability to grant and revoke other roles. A MINT role is defined but not explicitly used in the provided ERC20 snippet to restrict the _mint function. If minting is intended to be restricted, this centralization of administrative power, especially if the MINT role is also controlled by a single entity, introduces a single point of failure and a high degree of trust in the deployer.M-02

Issue

The DEFAULT_ADMIN_ROLE is assigned to the contract deployer in the VaultOwned constructor. This grants the deployer significant control over the contract's access control, including the ability to grant and revoke other roles. A MINT role is defined but not explicitly used in the provided ERC20 snippet to restrict the _mint function. If minting is intended to be restricted, this centralization of administrative power, especially if the MINT role is also controlled by a single entity, introduces a single point of failure and a high degree of trust in the deployer.

Fix

Implement a multi-signature wallet or a more decentralized governance mechanism for managing critical roles like DEFAULT_ADMIN_ROLE and MINT. If the MINT role is intended to restrict token minting, ensure it is properly applied to the _mint function. Clearly document the responsibilities and powers associated with each role.

Status

Unresolved

Medium

Lack of Upgradeability

The contract is deployed as a standard, non-upgradeable contract. This design choice means that the contract's logic is immutable once deployed. Any future bug fixes, security patches, or desired feature enhancements would require deploying an entirely new contract and migrating all existing users and assets, which is a complex, costly, and risky operation. This lack of flexibility can hinder long-term maintenance and responsiveness to unforeseen issues.M-03

Issue

The contract is deployed as a standard, non-upgradeable contract. This design choice means that the contract's logic is immutable once deployed. Any future bug fixes, security patches, or desired feature enhancements would require deploying an entirely new contract and migrating all existing users and assets, which is a complex, costly, and risky operation. This lack of flexibility can hinder long-term maintenance and responsiveness to unforeseen issues.

Fix

For long-lived protocols, consider implementing an upgradeability pattern (e.g., UUPS or Transparent Proxy) to allow for future contract logic updates. If upgradeability is not desired, ensure the contract is thoroughly audited and tested to minimize the risk of needing a redeployment. Clearly communicate the immutability to users.

Status

Unresolved

Low

Permit Function Susceptible to Front-Running

The permit function, while correctly implemented according to EIP-2612, is inherently susceptible to front-running. A malicious actor could observe a pending permit transaction and front-run it. For example, if the owner has an existing allowance for the spender, the spender could front-run with a transferFrom call to drain funds before the permit transaction updates the allowance. While the nonces mechanism prevents replay attacks, it does not fully mitigate front-running risks related to allowance manipulation.L-01

Issue

The permit function, while correctly implemented according to EIP-2612, is inherently susceptible to front-running. A malicious actor could observe a pending permit transaction and front-run it. For example, if the owner has an existing allowance for the spender, the spender could front-run with a transferFrom call to drain funds before the permit transaction updates the allowance. While the nonces mechanism prevents replay attacks, it does not fully mitigate front-running risks related to allowance manipulation.

Fix

Educate users about the potential for front-running when using the permit function. While this is a known characteristic of EIP-2612 and not a specific implementation flaw, users should be aware of the risks, especially when interacting with untrusted or high-latency networks. Consider using transaction relays that can help mitigate some front-running vectors.

Status

Unresolved

Info

Unused MINT Role Definition

The MINT role is defined in the VaultOwned contract (bytes32 public constant MINT = keccak256("MINT");) but is not utilized in the provided ERC20 contract snippet to restrict the _mint function. If the intention is to control who can mint tokens, this role should be enforced on the _mint function or a wrapper around it.I-01

Issue

The MINT role is defined in the VaultOwned contract (bytes32 public constant MINT = keccak256("MINT");) but is not utilized in the provided ERC20 contract snippet to restrict the _mint function. If the intention is to control who can mint tokens, this role should be enforced on the _mint function or a wrapper around it.

Fix

If the MINT role is intended to restrict token minting, ensure it is applied to the _mint function (or a public/external function that calls _mint) using onlyRole(MINT). If the role is not intended for use, consider removing its definition to avoid confusion and unnecessary code.

Status

Unresolved

Analysis

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

The wkeyDAO2 contract implements an ERC20 token with EIP-2612 permit functionality and OpenZeppelin's AccessControl. While it utilizes SafeMath for arithmetic operations and correctly implements the permit mechanism, a critical vulnerability exists due to a truncated access control modifier. Additionally, the contract uses an outdated Solidity compiler version and lacks an upgrade mechanism, posing further risks. Centralized control over administrative roles is also noted.

Technical4/10Medium risk

The contract demonstrates a foundational understanding of ERC20 standards and integrates OpenZeppelin's AccessControl and SafeMath libraries, mitigating common integer overflow/underflow risks (7.2 Code Security). The EIP-2612 permit functionality is correctly implemented, enhancing user experience. However, a critical flaw exists in the onlyVault modifier, which is truncated and renders its intended access control ineffective or causes permanent reverts (7.3 Access Control). The use of Solidity 0.7.5 is outdated, missing native overflow checks and potential security enhancements of newer versions (7.2 Code Security).

Governance1/10High risk

The contract utilizes OpenZeppelin's AccessControl, with the deployer assigned the DEFAULT_ADMIN_ROLE in the VaultOwned constructor, centralizing significant administrative power (7.5 Governance). A MINT role is defined, suggesting potential for centralized token issuance, though its application is not shown in the provided snippet. The contract name 'wkeyDAO2' implies a decentralized autonomous organization, but the provided code lacks explicit DAO governance mechanisms like voting or proposal systems (7.5 Governance). This centralization introduces a single point of failure and trust assumption for critical operations (7.4 Economic).

Upgrades3/10High risk

The contract is deployed as a standard, non-upgradeable contract (7.7 Upgrades). This means that once deployed, its logic cannot be modified. Any discovered vulnerabilities, bugs, or desired feature enhancements would necessitate a complete redeployment of the contract and a complex migration of user funds and data, posing a significant operational risk (7.8 Operations).

Final RecommendationWhat to do about this score

Address the critical issue of the truncated onlyVault modifier immediately by completing or removing it, as it poses a severe security risk.

Consider upgrading the Solidity compiler to a more recent version (0.8.x or higher) to benefit from native overflow checks and improved security features. Evaluate the need for an upgradeability mechanism to allow for future bug fixes or feature enhancements without requiring a full redeployment. Clearly define and implement the intended access control for all sensitive functions, especially those related to token minting, to ensure proper decentralization or controlled administration.

Contract & Record

1 audit on record
TypeVault, Token
NetworkBNB Chain
Token age6mo
Contract0xe0a2…b82e
Deployer0x1473…24a8
Badge for your website
WebKey DAO 2.0 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. Jul 23, 2026100Critical
  2. Jul 23, 202667High

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

Frequently Asked Questions

What is the WKEYDAO2 contract address?

The WebKey DAO 2.0 (WKEYDAO2) contract on BNB Chain is 0xe0a281deff5c9d8d67af09d39340e134ac81b82e. Compare it with the address the project itself publishes before trading: other contracts can carry the same name and ticker.

Is WebKey DAO 2.0 a scam?

Quantum Audit's risk score for WebKey DAO 2.0 is 100/100 (Critical risk) as of Sep 4, 2026, computed by a deterministic function from on-chain facts — Contract verified: Verified; Mint: Mintable; Liquidity lock: Locked; Upgradeability: Fixed code. A score is a dated snapshot of those facts, not a guarantee; each one is listed on this page.

Is WKEYDAO2 liquidity locked?

Liquidity lock: Locked (as of Sep 4, 2026). Total DEX liquidity: $12.40M.

Who holds WKEYDAO2?

As of Sep 4, 2026, the 10 largest holders own 99.0% of the supply. The Holders section on this page shows who they are by holder type.

Would You Like a More Detailed Audit of WebKey DAO 2.0?

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