The FlapTaxTokenV3 contract implements an ERC20 token with advanced tax mechanisms, including asymmetric buy/sell taxes, anti-farmer tax, and a dynamic liquidation threshold. It leverages OpenZeppelin's upgradeable contracts for secure upgradeability. The audit identified a high-severity risk related to potential integer overflow in a packed struct field if token supply limits are significantly altered, alongside medium-severity centralization and external dependency risks. The contract demonstrates good architectural practices for upgradeability and gas optimization.

Early-stage security check — honeypot & rug-pull analysis
Is MarsCoin a Scam?
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 ERC20 token with advanced tax mechanisms, including asymmetric buy/sell taxes, anti-farmer tax, and a dynamic liquidation threshold.
Read the full analysis- Proxy contract
- Non-standard proxy storage
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- Volume/Liquidity > 15×
- Token age < 7 days
- 1 High finding(s) from audit
- 2 Medium finding(s) from audit
- 1 Low finding(s) from audit
Exact factors
- Proxy contract (upgradeable — admin can replace logic)
- Non-standard proxy storage (Etherscan-confirmed)
- Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
- Volume/Liquidity > 15× (15.8× — wash-trading signal)
- Token age < 7 days (early, volatile)
- 1 High finding(s) from audit
- 2 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 4Holders
as of audit · Sep 4, 2026- Contractstreasury, vesting, bridge, staking24.9%
- Walletsanonymous holders, free to sell5.3%
- Everyone elsethe rest of the supply69.8%
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- Pancakeswap v3USDTAnalysed$785.6K49.2%
- Pancakeswap v3USDT$560.7K35.1%
- UniswapUSDT$239.8K15.0%
- Pancakeswap v3牛来$9.9K0.6%
- Pancakeswap v3SPCXB$8390.1%
- Uniswap v2USDT$300.0%
Show 4 more pairs
The 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.
0xa986…be860x75be…ee900xde93…0bbc0x1119…26f50x07fb…e6a30x0be6…546d0xb3aa…92a00x0d1d…51fd0x7a97…4c920xcd6c…9dd5No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
HighPotential uint96 Overflow in PackedPoolState.liquidationThreshold
The liquidationThreshold field within the PackedPoolState struct is defined as uint96. While the current maxSupply of 1 billion tokens (1e9 ether) fits within this type, the contract's custom:security-note explicitly warns that if the total supply limit is changed to more than 1 billion ether, this field type must be revisited. Failure to do so could lead to an integer overflow if the liquidationThreshold value exceeds uint96's maximum capacity (~79 billion tokens with 18 decimals), causing incorrect calculations or unexpected protocol behavior. This is a critical design consideration for future scalability.H-01
uint96 Overflow in PackedPoolState.liquidationThresholdIssue
The liquidationThreshold field within the PackedPoolState struct is defined as uint96. While the current maxSupply of 1 billion tokens (1e9 ether) fits within this type, the contract's custom:security-note explicitly warns that if the total supply limit is changed to more than 1 billion ether, this field type must be revisited. Failure to do so could lead to an integer overflow if the liquidationThreshold value exceeds uint96's maximum capacity (~79 billion tokens with 18 decimals), causing incorrect calculations or unexpected protocol behavior. This is a critical design consideration for future scalability.
Fix
Implement a robust monitoring system for the token's maxSupply and liquidationThreshold values. If there is any intention to increase maxSupply significantly in the future, proactively adjust the liquidationThreshold data type (e.g., to uint128 or uint256) in a new implementation to prevent potential overflows. Consider adding runtime checks to ensure liquidationThreshold never exceeds type(uint96).max during updates.
Status
Unresolved
MediumHigh Centralization Risk via Owner Privileges
The OwnableUpgradeable pattern grants significant control to a single owner address. Functions like startMigration are protected by onlyOwner. Furthermore, the initialize function allows the owner to set critical parameters such as taxProcessor, dividendContract, v2Router, quoteToken, antiFarmerDuration, buyTax, sellTax, taxDuration, liqExpectedOutputAmount, and the initial pools. This extensive control over core protocol addresses and economic parameters introduces a high degree of centralization, making the protocol vulnerable to a single point of compromise or malicious action by the owner.M-01
Issue
The OwnableUpgradeable pattern grants significant control to a single owner address. Functions like startMigration are protected by onlyOwner. Furthermore, the initialize function allows the owner to set critical parameters such as taxProcessor, dividendContract, v2Router, quoteToken, antiFarmerDuration, buyTax, sellTax, taxDuration, liqExpectedOutputAmount, and the initial pools. This extensive control over core protocol addresses and economic parameters introduces a high degree of centralization, making the protocol vulnerable to a single point of compromise or malicious action by the owner.
Fix
Consider implementing a multi-signature wallet (e.g., Gnosis Safe) for the owner role to require multiple approvals for critical operations. For highly sensitive parameters or actions, explore time-locked governance mechanisms or decentralized autonomous organization (DAO) control to distribute power and increase transparency.
Status
Unresolved
MediumReliance on External Contracts Introduces Dependency Risk
The FlapTaxTokenV3 contract relies heavily on several external contracts, including v2Router, taxProcessor, dividendContract, quoteToken, and the addresses within the pools mapping. These external dependencies are set during initialization and can be critical for the token's functionality (e.g., tax processing, liquidity management, dividend distribution). A compromise, malfunction, or malicious upgrade in any of these external contracts could directly impact the security and functionality of FlapTaxTokenV3, potentially leading to loss of funds or service disruption.M-02
Issue
The FlapTaxTokenV3 contract relies heavily on several external contracts, including v2Router, taxProcessor, dividendContract, quoteToken, and the addresses within the pools mapping. These external dependencies are set during initialization and can be critical for the token's functionality (e.g., tax processing, liquidity management, dividend distribution). A compromise, malfunction, or malicious upgrade in any of these external contracts could directly impact the security and functionality of FlapTaxTokenV3, potentially leading to loss of funds or service disruption.
Fix
Thoroughly audit and vet all external contracts before integrating them. Implement robust input validation for external addresses. Consider adding mechanisms to pause critical interactions with external contracts in emergencies or to allow the owner to update compromised external addresses. Clearly document the trust assumptions made regarding each external dependency.
Status
Unresolved
LowPotential Gas Limit Exceeded in initialize for Large Pool Arrays
The initialize function includes a for loop that iterates through the params.pools array to set pools[params.pools[i]] = true. If the params.pools array contains an extremely large number of addresses, this loop could consume a significant amount of gas. In extreme cases, it might cause the transaction to exceed the block gas limit, preventing the contract from being initialized successfully.L-01
initialize for Large Pool ArraysIssue
The initialize function includes a for loop that iterates through the params.pools array to set pools[params.pools[i]] = true. If the params.pools array contains an extremely large number of addresses, this loop could consume a significant amount of gas. In extreme cases, it might cause the transaction to exceed the block gas limit, preventing the contract from being initialized successfully.
Fix
While unlikely for typical deployments, consider imposing a reasonable maximum limit on the size of the params.pools array during initialization. Alternatively, if a very large number of pools is anticipated, implement a paginated or batched approach for adding pools post-initialization via an owner-controlled function, rather than during a single deployment transaction.
Status
Unresolved
InfoReliance on block.timestamp for Time-Dependent Mechanisms
The contract utilizes taxExpirationTime and antiFarmerExpirationTime, which are derived from block.timestamp. While block.timestamp is a standard EVM primitive, it is susceptible to minor manipulation by miners (within a small window, typically a few seconds). For highly time-sensitive operations, this could introduce a slight degree of unpredictability or allow for minor front-running opportunities related to tax expirations.I-01
block.timestamp for Time-Dependent MechanismsIssue
The contract utilizes taxExpirationTime and antiFarmerExpirationTime, which are derived from block.timestamp. While block.timestamp is a standard EVM primitive, it is susceptible to minor manipulation by miners (within a small window, typically a few seconds). For highly time-sensitive operations, this could introduce a slight degree of unpredictability or allow for minor front-running opportunities related to tax expirations.
Fix
Acknowledge the inherent limitations of block.timestamp in EVM. For most applications, this level of precision is acceptable. If extreme precision or resistance to miner manipulation is critical for future features, consider alternative time-keeping mechanisms (e.g., relying on oracle-provided timestamps, though this introduces new trust assumptions).
Status
Unresolved
InfoEffective Use of Immutable Variables for Threshold Limits
The contract correctly utilizes immutable keywords for MIN_LIQ_THRESHOLD and START_LIQ_THRESHOLD in its constructor. This ensures that these critical threshold limits are set once at deployment and cannot be altered thereafter, providing a strong guarantee of their values across all clones and future upgrades of this implementation. This is a good practice for fixed protocol parameters.I-02
Issue
The contract correctly utilizes immutable keywords for MIN_LIQ_THRESHOLD and START_LIQ_THRESHOLD in its constructor. This ensures that these critical threshold limits are set once at deployment and cannot be altered thereafter, providing a strong guarantee of their values across all clones and future upgrades of this implementation. This is a good practice for fixed protocol parameters.
Fix
Continue to identify and apply the immutable keyword to any other parameters that are intended to be unchangeable throughout the contract's lifecycle, enhancing security and predictability.
Status
Unresolved
InfoWell-Implemented Upgradeability Pattern
The contract correctly implements the UUPS (Universal Upgradeable Proxy Standard) pattern by inheriting from OpenZeppelin's Initializable, ERC20Upgradeable, ERC20PermitUpgradeable, and OwnableUpgradeable contracts. The constructor calls _disableInitializers() to prevent re-initialization of the implementation contract, and the initialize function uses the initializer modifier. This setup provides a secure and standard way to manage contract upgrades.I-03
Issue
The contract correctly implements the UUPS (Universal Upgradeable Proxy Standard) pattern by inheriting from OpenZeppelin's Initializable, ERC20Upgradeable, ERC20PermitUpgradeable, and OwnableUpgradeable contracts. The constructor calls _disableInitializers() to prevent re-initialization of the implementation contract, and the initialize function uses the initializer modifier. This setup provides a secure and standard way to manage contract upgrades.
Fix
Maintain strict control over the proxy's admin address, as this address has the power to upgrade the contract. Ensure that upgrade proposals are thoroughly tested and reviewed before deployment to production.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract utilizes OpenZeppelin's upgradeable standards and implements a gas-optimized PackedPoolState struct (7.1 Architecture). A notable technical risk is the uint96 type for liquidationThreshold, which could overflow if the maxSupply is increased beyond its current limits, as explicitly noted in the code (7.2 Code Security). The initialize function's loop for adding pools could potentially hit gas limits if an excessively large array is provided (7.8 Operations).
The contract exhibits a medium level of centralization due to the onlyOwner role having extensive control over critical parameters such as tax rates, external contract addresses (taxProcessor, dividendContract, v2Router), and the ability to initiate migration (7.3 Access Control, 7.5 Governance). The economic model relies on time-dependent and anti-farmer taxes, which are sensitive to block.timestamp (7.4 Economic). Significant trust is placed in external dependencies like taxProcessor and v2Router (7.6 External).
The contract is designed for upgradeability using OpenZeppelin's Initializable and Upgradeable patterns, indicating a UUPS proxy implementation (7.7 Upgrades). Immutable variables (MIN_LIQ_THRESHOLD, START_LIQ_THRESHOLD) are correctly set in the constructor, ensuring their persistence across upgrades and instances (7.1 Architecture). The _disableInitializers() call in the constructor prevents re-initialization of the implementation contract.
It is recommended to carefully review the uint96 type for liquidationThreshold and implement robust checks or alternative data types if the token's maxSupply is ever considered for an increase beyond current limits.
Additionally, consider implementing a multi-signature wallet for critical owner-controlled functions to mitigate centralization risks and enhance security. Thoroughly vet all external contract addresses before deployment.
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, 202639Medium
- Aug 3, 202637Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Frequently Asked Questions
What is the MARSCOIN contract address?
The MarsCoin contract on BNB Chain is 0xfe189e97832da1573e4e4ff034f4ffc3a15c7777. Compare it with the address the project itself publishes before trading: other contracts can carry the same name and ticker.
Is MarsCoin a scam?
Quantum Audit's risk score for MarsCoin is 39/100 (Medium 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 MARSCOIN liquidity locked?
Liquidity lock: Not locked (as of Sep 4, 2026). Total DEX liquidity: $1.60M.
Who holds MARSCOIN?
As of Sep 4, 2026, the 10 largest holders own 30.2% of the supply. The Holders section on this page shows who they are by holder type.
Would You Like a More Detailed Audit of MarsCoin?
This token is brand new. Run a deeper AI-powered analysis of the contract code — free and instant.
Get Detailed Audit Is this your token? Publish your own audit on this page