Quantum Audit Logo

Is Andy Safe?

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

Is this your token? Publish your own audit on this page →

Andy ANDY
0x68bb…c91e
Ethereum Not verifiedLast checked 2d ago 1 audit on record
Executive SummaryAI Copilot

The audited contract implements a standard ERC20 token with renounced ownership. The code is generally well-structured and adheres to common patterns. Minor code quality concerns exist regarding the redundant use of a SafeMath library in Solidity 0.8.19. Overall, the contract presents a low security risk.

1 Low2 Informational
Volume 24h
$43.6K
Liquidity
$1.31M
Price
$0.000009084
Token Age
2y
Top 10 Holders
22.1%

Security Findings

Low

Redundant SafeMath Library and Unchecked Blocks

L-01The contract includes a `SafeMath` library. However, Solidity version 0.8.19, used in this contract, provides native overflow and underflow protection by default. The `try*` functions within the `SafeMath` library explicitly use `unchecked` blocks, which bypass these native checks, although they implement their own checks. The `add`, `sub`, `mul`, `div`, `mod` functions without `try` or `errorMessage` parameters do not use `unchecked` and thus rely on the native compiler checks, making the library largely redundant and potentially confusing for maintainers.
IssueThe contract includes a `SafeMath` library. However, Solidity version 0.8.19, used in this contract, provides native overflow and underflow protection by default. The `try*` functions within the `SafeMath` library explicitly use `unchecked` blocks, which bypass these native checks, although they implement their own checks. The `add`, `sub`, `mul`, `div`, `mod` functions without `try` or `errorMessage` parameters do not use `unchecked` and thus rely on the native compiler checks, making the library largely redundant and potentially confusing for maintainers.
FixConsider removing the `SafeMath` library entirely and relying on Solidity's built-in overflow/underflow protection for arithmetic operations. If specific `unchecked` blocks are desired for gas optimization, ensure they are carefully placed and preceded by robust `require` statements, as is done in some parts of the `ERC20` contract itself.
StatusUnresolved
Info

ERC20 Allowance Race Condition (Known Issue)

I-01The standard `approve()` function is susceptible to a front-running attack. If a token holder first approves an amount for a spender, and then decides to change that approved amount, an attacker can front-run the second `approve` transaction. This allows the attacker to execute the original `approve` with the initial amount, then immediately use `transferFrom` to drain that amount, and finally allow the second `approve` transaction to proceed, granting the spender the new amount as well.
IssueThe standard `approve()` function is susceptible to a front-running attack. If a token holder first approves an amount for a spender, and then decides to change that approved amount, an attacker can front-run the second `approve` transaction. This allows the attacker to execute the original `approve` with the initial amount, then immediately use `transferFrom` to drain that amount, and finally allow the second `approve` transaction to proceed, granting the spender the new amount as well.
FixWhile `increaseAllowance()` and `decreaseAllowance()` functions are provided, which mitigate this issue, users should be educated to use these functions instead of directly calling `approve()` when modifying an existing allowance.
StatusUnresolved
Info

Implications of Renounced Ownership

I-02The provided prefill data indicates that the contract's ownership has been renounced (`ownership_renounced: true`). This means the `_owner` address in the `Ownable` contract is set to `address(0)`. Consequently, any functions protected by the `onlyOwner` modifier are permanently inaccessible and cannot be executed by any external account.
IssueThe provided prefill data indicates that the contract's ownership has been renounced (`ownership_renounced: true`). This means the `_owner` address in the `Ownable` contract is set to `address(0)`. Consequently, any functions protected by the `onlyOwner` modifier are permanently inaccessible and cannot be executed by any external account.
FixConfirm that renouncing ownership was an intentional and well-considered decision. Ensure that no critical administrative functions or emergency controls are required post-renunciation, as they cannot be recovered or executed. This design choice enhances decentralization but removes any central control.
StatusUnresolved

Category Ratings

TechnicalLow10/10

The contract implements a standard ERC20 token, inheriting from `Context`, `IERC20`, and `IERC20Metadata`. It includes a `SafeMath` library, though its utility is diminished in Solidity 0.8.19 due to built-in overflow checks (7.2 Code Security). The `_transfer` and `_burn` functions correctly use `unchecked` blocks after validating conditions with `require` statements, ensuring arithmetic safety. Access control is handled by the `Ownable` pattern, which is noted as renounced (7.3 Access Control), enhancing decentralization.

GovernanceLow10/10

The economic model is a standard ERC20 token, with no complex mechanisms or external dependencies that introduce inherent economic risk (7.4 Economic). Governance is based on the `Ownable` pattern, but the ownership has been renounced (7.5 Governance). This means no single entity controls administrative functions, which significantly reduces governance risk and enhances decentralization.

UpgradesLow10/10

The contract is not designed with an upgradeability pattern (e.g., proxy). Therefore, it is immutable once deployed, eliminating upgrade-related risks such as proxy misconfigurations or logic contract vulnerabilities introduced during upgrades (7.7 Upgrades). Any changes to the contract's logic would require a new deployment.

Security Checklist

Contract VerifiedPass
Ownership RenouncedPass
No Mint FunctionPass
Liquidity LockedPass
Not a ProxyPass
HoneypotNoneBuy Tax0.0%Sell Tax0.0%

Holder Composition

13.7% in wallets8.3% in contracts
Effective Concentration17.1%

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.

Liquidity Depth

The risk score reads depth across every pair. The volume figure and the volume-to-liquidity ratio elsewhere on this page describe only the pair this audit analysed, so the two are not directly comparable.

LP Distribution

LP Burned100.0% · ≈ permanent lock
LP Locked100.0% · Null Address

Key Addresses

Deployer
0x2c02…bb08
Unlocked LP Held By
0xb3ac…68a00x6bf1…da0c0x3b72…d61f0x0000…8a900x1f2f…f3870x17bb…7e37

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

What Raised This Score

  • 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

Related Audits

AsteroidLow RiskAmerica Pac (PAC)Low RiskJerry The Turtle By Matt Furie (JYAI)Low RiskNon-Playable Coin (NPC)Low RiskYee Token (YEE)Low RiskPikachuLow Risk

Would You Like a More Detailed Audit of Andy?

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

Get Detailed Audit