The BurnMintERC20 contract implements an ERC-20 token with minting and burning capabilities, leveraging OpenZeppelin's AccessControl. While the contract generally follows good practices for token implementation and access control, a critical vulnerability exists in the grantMintAndBurnRoles function, which lacks any access restrictions. This flaw allows any caller to grant themselves or others the ability to mint and burn tokens, leading to a complete compromise of the token's supply and value.
On-chain security analysis — is it a scam or legit?
Is Bittensor Safe?
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 →The BurnMintERC20 contract implements an ERC-20 token with minting and burning capabilities, leveraging OpenZeppelin's AccessControl.
Read the full analysis- Ownership not renounced
- 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 Critical finding(s) from audit
Exact factors
- Ownership NOT renounced (admin/mint authority retained)
- Mintable supply — no cap found, dilution unbounded
- Top-10 concentration > 30% (82.6% total → 39.4% effective; 10.5% in EOAs, 72.0% 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)
- LP top3 unlocked holders = 100.0% (independent LP — depth risk)
- 1 Critical 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 4Holders
as of audit · Sep 4, 2026- Contractstreasury, vesting, bridge, staking72.0%
- Walletsanonymous holders, free to sell10.5%
- Everyone elsethe rest of the supply17.4%
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 4The risk score reads depth across every pair.
The LP tokens of the analysed pool are not locked or burned, so whoever holds them can withdraw that liquidity.
0x3dd5…599dNo privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
CriticalUnrestricted grantMintAndBurnRoles Function
The grantMintAndBurnRoles function lacks any access control, allowing any external caller to grant MINTER_ROLE and BURNER_ROLE to any address, including themselves. This enables unauthorized minting of new tokens (potentially bypassing maxSupply if MINTER_ROLE is granted) and burning of existing tokens, leading to complete compromise of the token's supply and value. This directly impacts 7.3 Access Control, 7.4 Economic, and 7.8 Operations.C-01
grantMintAndBurnRoles FunctionIssue
The grantMintAndBurnRoles function lacks any access control, allowing any external caller to grant MINTER_ROLE and BURNER_ROLE to any address, including themselves. This enables unauthorized minting of new tokens (potentially bypassing maxSupply if MINTER_ROLE is granted) and burning of existing tokens, leading to complete compromise of the token's supply and value. This directly impacts 7.3 Access Control, 7.4 Economic, and 7.8 Operations.
Fix
Implement robust access control for the grantMintAndBurnRoles function. It should be restricted to addresses holding the DEFAULT_ADMIN_ROLE or a specifically designated administrative role. For example, add onlyRole(DEFAULT_ADMIN_ROLE) to the function signature: `function grantMintAndBurnRoles(address burnAndMinter) external onlyRole(DEFAULT_ADMIN_ROLE)`.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract demonstrates good code security practices (7.2 Code Security) by utilizing OpenZeppelin's battle-tested libraries, employing Solidity 0.8+ for overflow safety, and using custom errors. The architecture (7.1 Architecture) is straightforward, extending standard ERC20 functionality. However, a critical access control flaw exists in the grantMintAndBurnRoles function, which lacks any restriction, allowing unauthorized parties to grant themselves minting and burning capabilities.
The contract implements a basic governance structure (7.5 Governance) through OpenZeppelin's AccessControl, with a DEFAULT_ADMIN_ROLE capable of managing the s_ccipAdmin address. Economic parameters (7.4 Economic) include an optional maxSupply to limit total token issuance and checks to prevent tokens from being locked in the contract. Despite these, the unrestricted grantMintAndBurnRoles function severely compromises the token's economic integrity and governance model, as any caller can grant themselves the power to mint and burn tokens, leading to potential hyperinflation or arbitrary supply destruction.
This contract is not designed to be upgradeable (7.7 Upgrades), meaning its logic is immutable once deployed. This eliminates risks associated with proxy patterns, upgradeability proxies, and potential upgrade path vulnerabilities. The contract's functionality is fixed, providing certainty regarding its long-term behavior.
It is critical to immediately address the access control vulnerability in the grantMintAndBurnRoles function.
This function must be restricted to authorized roles, such as the DEFAULT_ADMIN_ROLE, to prevent unauthorized minting and burning of tokens. Failure to implement this fix will result in a complete compromise of the token's economic model and security.
Contract & Record
Free for any token on the record. It links to this page and always shows the current score and the date it was checked.
- Sep 4, 202662Medium
- Sep 4, 202650Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Would You Like a More Detailed Audit of Bittensor?
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