Quantum Audit Logo

Is Palu Safe?

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

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

Palu PALU
0x02e7…4444
BNB Chain Not verifiedLast checked 3d ago 1 audit on record
Executive SummaryAI Copilot

The FourERC20 contract is an implementation of the ERC-20 standard, largely based on OpenZeppelin's battle-tested libraries. However, the contract as provided lacks a constructor to initialize token parameters (name, symbol) and, critically, a mechanism to mint the initial supply of tokens. If deployed directly, this contract would result in a non-functional token with zero total supply, rendering it unusable for its intended purpose. This fundamental design flaw constitutes a critical vulnerability.

1 Critical2 Informational
Volume 24h
$84.7K
Liquidity
$370.5K
Price
$0.001289
Token Age
10mo
Top 10 Holders
71.6%

Security Findings

Critical

Non-functional Token due to Missing Constructor and Minting Logic

C-01The `FourERC20` contract, as provided, lacks a public constructor to initialize the token's `_name` and `_symbol` variables. More critically, it does not include any public or external function to mint an initial supply of tokens. The `_mint` function is internal, meaning it can only be called by the contract itself or a derived contract. If `FourERC20` is deployed directly, `_totalSupply` will remain 0, and no tokens can ever be created, rendering the token completely non-functional and unusable.
IssueThe `FourERC20` contract, as provided, lacks a public constructor to initialize the token's `_name` and `_symbol` variables. More critically, it does not include any public or external function to mint an initial supply of tokens. The `_mint` function is internal, meaning it can only be called by the contract itself or a derived contract. If `FourERC20` is deployed directly, `_totalSupply` will remain 0, and no tokens can ever be created, rendering the token completely non-functional and unusable.
FixImplement a public constructor in `FourERC20` that calls `_init(name_, symbol_)` and `_mint(recipient, initialSupply)` to set the token's metadata and create an initial supply upon deployment. Alternatively, ensure that any contract inheriting `FourERC20` properly implements these initialization and minting steps in its own constructor.
StatusUnresolved
Info

Use of Internal `_init` Function for Token Metadata

I-01The contract uses an internal function `_init(string memory name_, string memory symbol_)` to set the token's name and symbol. While this pattern is common in base contracts designed for inheritance, it means that if `FourERC20` is deployed directly without a derived contract calling `_init` in its constructor, the `_name` and `_symbol` state variables will remain empty strings. This contributes to the non-functional state of the token.
IssueThe contract uses an internal function `_init(string memory name_, string memory symbol_)` to set the token's name and symbol. While this pattern is common in base contracts designed for inheritance, it means that if `FourERC20` is deployed directly without a derived contract calling `_init` in its constructor, the `_name` and `_symbol` state variables will remain empty strings. This contributes to the non-functional state of the token.
FixIf `FourERC20` is intended to be directly deployable, convert `_init` into a public constructor. If it's strictly a base contract, ensure clear documentation for developers inheriting it to call `_init` in their derived contract's constructor.
StatusUnresolved
Info

Adherence to OpenZeppelin Standards

I-02The `FourERC20` contract largely follows the structure and implementation patterns of OpenZeppelin Contracts for ERC-20 tokens. This includes using `Context` for `_msgSender()`, implementing standard ERC-20 functions, and including `increaseAllowance` and `decreaseAllowance` to mitigate common allowance-related issues. This adherence to well-audited and widely adopted standards enhances the contract's inherent security and reliability.
IssueThe `FourERC20` contract largely follows the structure and implementation patterns of OpenZeppelin Contracts for ERC-20 tokens. This includes using `Context` for `_msgSender()`, implementing standard ERC-20 functions, and including `increaseAllowance` and `decreaseAllowance` to mitigate common allowance-related issues. This adherence to well-audited and widely adopted standards enhances the contract's inherent security and reliability.
FixContinue to leverage and stay updated with OpenZeppelin's best practices and contract versions. Ensure any custom logic added in the future maintains the same high standards.
StatusUnresolved

Category Ratings

TechnicalLow8/10

The contract leverages well-audited OpenZeppelin libraries for its core ERC-20 functionality, which contributes to strong code security (7.2 Code Security). Standard ERC-20 functions like `transfer`, `approve`, and `transferFrom` are correctly implemented. However, the primary technical risk lies in the contract's architecture (7.1 Architecture) as a standalone deployable token, specifically the absence of a constructor and any public or external minting functions. This design flaw prevents the token from ever having a supply, making it non-functional.

GovernanceLow8/10

The contract has no explicit governance mechanisms (7.5 Governance) or access control roles beyond the standard ERC-20 sender/spender model (7.3 Access Control). The economic model (7.4 Economic) is severely compromised because the token's total supply is permanently zero due to the lack of a minting function. This renders the token economically worthless and unusable, representing a critical economic risk.

UpgradesLow9/10

The FourERC20 contract is not designed as an upgradeable proxy (7.7 Upgrades). Therefore, there are no specific upgrade-related risks. Any changes to the token's logic would require deploying a new contract.

Security Checklist

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

Holder Composition

4.5% in wallets67.1% in contracts
Effective Concentration31.4%

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
0xf16d…dbcd
Unlocked LP Held By
0xbed6…53d20x3c5c…66b60x69c0…fd740x2fb8…ea690x0f7a…056d0x4dd4…a26b

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

What Raised This Score

  • Top-10 concentration > 30% (71.6% total → 31.4% effective; 4.5% in EOAs, 67.1% in contracts — moderate)
  • 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

Related Audits

哈基米Low RiskREAL WORLD APPAREL (JACKET)Low Risk富贵Low RiskpricelessLow RiskTCryptochicks (TCC)Low Risk币安人生Low Risk

Would You Like a More Detailed Audit of Palu?

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

Get Detailed Audit