The FlapTaxTokenV3 contract implements an upgradeable ERC20 token with a dynamic tax mechanism and pool-based state transitions. The audit identified a critical vulnerability due to the incomplete _processTax function, which is central to the token's economic model. Additionally, a high-severity bug in timestamp calculation for tax expiration and medium-severity concerns regarding long-term timestamp truncation and high centralization risk were found. These issues significantly impact the contract's functionality, security, and long-term viability.

On-chain security analysis — is it a scam or legit?
Is bStocks Never Sleep 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 FlapTaxTokenV3 contract implements an upgradeable ERC20 token with a dynamic tax mechanism and pool-based state transitions.
Read the full analysis- Proxy contract
- Non-standard proxy storage
- Top-10 concentration > 20%
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- Liquidity < $50k
- LP top1 unlocked holder = 99.9%
- LP top3 unlocked holders = 100.0%
- Token age < 30 days
- 1 Critical finding(s) from audit
- 1 High finding(s) from audit
- 2 Medium finding(s) from audit
Exact factors
- Proxy contract (upgradeable — admin can replace logic)
- Non-standard proxy storage (Etherscan-confirmed)
- Top-10 concentration > 20% (46.0% total → 26.8% effective; 14.1% in EOAs, 31.9% in contracts — mild)
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- Liquidity < $50k ($33,829 across 3 pairs — thin market)
- LP top1 unlocked holder = 99.9% (independent LP — depth risk, pool = 89% of DEX liquidity)
- LP top3 unlocked holders = 100.0% (independent LP — depth risk, pool = 89% of DEX liquidity)
- Token age < 30 days (still settling)
- 1 Critical finding(s) from audit
- 1 High finding(s) from audit
- 2 Medium 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, staking31.9%
- Walletsanonymous holders, free to sell14.1%
- Everyone elsethe rest of the supply54.0%
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.
0xf949…02980x2ee3…3c7f0x61d0…92ef0x12af…c9cc0xd379…60d80x7551…c6120x41ba…90f00x358c…e6b80x12e3…eb97No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
CriticalIncomplete _processTax Function
The _processTax function, which is called within _liquidateTax and is responsible for handling accumulated tax amounts, is entirely missing from the provided source code. This function is central to the token's economic model and its interactions with the taxProcessor and dividendContract. Without its implementation, the core functionality of tax distribution and liquidation cannot be assessed for security vulnerabilities, including reentrancy, incorrect calculations, or improper external calls.C-01
_processTax FunctionIssue
The _processTax function, which is called within _liquidateTax and is responsible for handling accumulated tax amounts, is entirely missing from the provided source code. This function is central to the token's economic model and its interactions with the taxProcessor and dividendContract. Without its implementation, the core functionality of tax distribution and liquidation cannot be assessed for security vulnerabilities, including reentrancy, incorrect calculations, or improper external calls.
Fix
Complete the implementation of the _processTax function. Ensure it correctly handles the accumulated tax, interacts securely with taxProcessor and dividendContract, and implements reentrancy guards if external calls are made. The completed function must be thoroughly audited.
Status
Unresolved
HighIncorrect taxExpirationTime Calculation in finalizeMigration
In the finalizeMigration function, the taxExpirationTime is updated with currentPoolState.taxExpirationTime + block.timestamp. If currentPoolState.taxExpirationTime is already an absolute timestamp (as implied by its usage with block.timestamp > currentPoolState.taxExpirationTime), adding block.timestamp to it will result in an extremely large and incorrect future timestamp, effectively making the tax period last for an unintended, excessively long duration.H-01
taxExpirationTime Calculation in finalizeMigrationIssue
In the finalizeMigration function, the taxExpirationTime is updated with currentPoolState.taxExpirationTime + block.timestamp. If currentPoolState.taxExpirationTime is already an absolute timestamp (as implied by its usage with block.timestamp > currentPoolState.taxExpirationTime), adding block.timestamp to it will result in an extremely large and incorrect future timestamp, effectively making the tax period last for an unintended, excessively long duration.
Fix
Correct the calculation of taxExpirationTime in finalizeMigration. If the intention is to extend the tax period from the current time, it should be block.timestamp + duration (where duration is the intended extension). If it's meant to be a fixed absolute time, it should be set directly. Ensure the logic aligns with the intended economic model.
Status
Unresolved
MediumLong-Term Timestamp Truncation Risk
The taxExpirationTime (uint64) and antiFarmerExpirationTime (uint48) variables are used to store block.timestamp values. While sufficient for current operations, block.timestamp is a uint256. Casting it to uint64 or uint48 introduces a truncation risk in the distant future (approximately 2070 for uint64 and 2040 for uint48). If the contract is intended for operation beyond these dates, this could lead to unexpected behavior and incorrect state transitions.M-01
Issue
The taxExpirationTime (uint64) and antiFarmerExpirationTime (uint48) variables are used to store block.timestamp values. While sufficient for current operations, block.timestamp is a uint256. Casting it to uint64 or uint48 introduces a truncation risk in the distant future (approximately 2070 for uint64 and 2040 for uint48). If the contract is intended for operation beyond these dates, this could lead to unexpected behavior and incorrect state transitions.
Fix
Consider using uint256 for taxExpirationTime and antiFarmerExpirationTime if the contract is expected to operate for several decades. Alternatively, implement a migration strategy or a mechanism to reset these values before the truncation threshold is reached.
Status
Unresolved
MediumHigh Centralization Risk via Owner Privileges
The onlyOwner role has extensive control over critical contract parameters and state transitions. The owner can initiate and finalize migration (startMigration, finalizeMigration), which changes the PoolState and affects tax enforcement. The owner also sets crucial external addresses (taxProcessor, dividendContract, v2Router, quoteToken, mainPool, and other pools) during initialization. This high degree of centralization means a single compromised or malicious owner account could significantly impact the protocol's integrity and user funds.M-02
Issue
The onlyOwner role has extensive control over critical contract parameters and state transitions. The owner can initiate and finalize migration (startMigration, finalizeMigration), which changes the PoolState and affects tax enforcement. The owner also sets crucial external addresses (taxProcessor, dividendContract, v2Router, quoteToken, mainPool, and other pools) during initialization. This high degree of centralization means a single compromised or malicious owner account could significantly impact the protocol's integrity and user funds.
Fix
To mitigate centralization risks, consider implementing a multi-signature wallet for the owner address. For highly sensitive operations, a time-lock mechanism could be introduced to provide a delay before changes take effect, allowing the community or users to react to potentially malicious actions.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract utilizes OpenZeppelin's upgradeable standards (ERC20Upgradeable, OwnableUpgradeable, Initializable) and SafeERC20 for secure token interactions, demonstrating good foundational practices (7.2 Code Security). However, a critical vulnerability exists due to the truncated _processTax function, which is essential for tax liquidation and external interactions, preventing a full security assessment (7.2 Code Security, 7.6 External). A high-severity bug in finalizeMigration incorrectly calculates taxExpirationTime by adding block.timestamp to an existing absolute timestamp, leading to an excessively large and incorrect value (7.1 Architecture, 7.2 Code Security). Furthermore, the use of uint64 and uint48 for taxExpirationTime and antiFarmerExpirationTime introduces a long-term risk of block.timestamp truncation, potentially causing unexpected state transitions in the distant future (7.1 Architecture).
The contract's economic model involves dynamic buy/sell taxes and a liquidation mechanism, which are central to its design (7.4 Economic). The onlyOwner role holds significant control, allowing the owner to initiate and finalize migration, set critical external addresses (tax processor, dividend contract, router), and manage pool addresses (7.3 Access Control, 7.5 Governance). While common for initial deployments, this high degree of centralization presents a medium risk, as the owner could manipulate parameters or external integrations. The tax calculation logic appears sound, but its ultimate impact depends heavily on the missing _processTax implementation (7.4 Economic).
The contract is designed as an upgradeable proxy implementation, correctly using OpenZeppelin's Initializable and _disableInitializers() in the constructor (7.7 Upgrades). This allows for future upgrades to fix bugs or add features without redeploying the entire system. However, MIN_LIQ_THRESHOLD and START_LIQ_THRESHOLD are declared as immutable, meaning these specific parameters cannot be altered in future upgrades, which might limit flexibility (7.7 Upgrades).
It is imperative to complete the implementation of the _processTax function and ensure its logic is thoroughly reviewed for security vulnerabilities, especially reentrancy and correct interaction with external contracts.
The finalizeMigration function's taxExpirationTime calculation must be corrected to prevent unintended and excessively long tax periods. Consider the long-term implications of uint64 and uint48 for timestamp storage and explore alternatives if the contract is expected to operate for several decades. Finally, review the extent of owner privileges and consider implementing a multi-signature wallet or time-locked governance for critical administrative actions to mitigate centralization risks.
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, 202675High
- Aug 15, 202639Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Frequently Asked Questions
What is the BSTOCKS contract address?
The bStocks Never Sleep (BSTOCKS) contract on BNB Chain is 0x244b112cf746e62a5df723cbde9906a6defd7777. Compare it with the address the project itself publishes before trading: other contracts can carry the same name and ticker.
Is bStocks Never Sleep a scam?
Quantum Audit's risk score for bStocks Never Sleep is 75/100 (High risk) as of Sep 4, 2026, computed by a deterministic function from on-chain facts — Contract verified: Verified; Ownership: Renounced; Mint: No mint; Liquidity lock: Not locked; Upgradeability: Upgradeable. A score is a dated snapshot of those facts, not a guarantee; each one is listed on this page.
Is BSTOCKS liquidity locked?
Liquidity lock: Not locked (as of Sep 4, 2026). Total DEX liquidity: $33.8K.
Who holds BSTOCKS?
As of Sep 4, 2026, the 10 largest holders own 46.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 bStocks Never Sleep?
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