Quantum Audit Logo

Is Filecoin Safe?

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

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

Filecoin FIL
0x0d8c…e153
BNB Chain Not verifiedLast checked 3d ago 1 audit on record
Executive SummaryAI Copilot

The audit of the BEP20 Token implementation contract identified a medium-level risk related to centralized control over token minting, which could lead to supply manipulation if the owner's key is compromised. Minor issues include the immutability of the mintable flag and an incomplete internal function. The contract demonstrates good practices for upgradeability and uses SafeMath to prevent arithmetic overflows. Overall, the contract is well-structured but requires careful management of the owner's privileges.

1 Medium1 Low2 Informational
Volume 24h
$189.2K
Liquidity
$60.5K
Price
$0.7726
Token Age
3y
Top 10 Holders
30.7%

Security Findings

Medium

Centralized Control of Token Supply

M-01The `_owner` address has the sole authority to mint new tokens if the `_mintable` flag is set to true during initialization. This introduces a single point of failure where a compromised owner key could lead to arbitrary inflation of the token supply, devaluing existing tokens. This impacts access control (7.3) and economic stability (7.4).
IssueThe `_owner` address has the sole authority to mint new tokens if the `_mintable` flag is set to true during initialization. This introduces a single point of failure where a compromised owner key could lead to arbitrary inflation of the token supply, devaluing existing tokens. This impacts access control (7.3) and economic stability (7.4).
FixImplement a multi-signature wallet for the owner address to control critical functions like `mint`. This distributes control and requires multiple approvals for sensitive operations, significantly reducing the risk of a single point of compromise.
StatusUnresolved
Low

Immutability of `_mintable` Flag

L-01The `_mintable` flag, which controls whether new tokens can be minted, is set only during the `initialize` function and cannot be changed thereafter. This design choice means the token's minting capability is permanently fixed upon deployment, which might limit future flexibility if the project's requirements evolve. This is a design consideration (7.1) and governance aspect (7.5).
IssueThe `_mintable` flag, which controls whether new tokens can be minted, is set only during the `initialize` function and cannot be changed thereafter. This design choice means the token's minting capability is permanently fixed upon deployment, which might limit future flexibility if the project's requirements evolve. This is a design consideration (7.1) and governance aspect (7.5).
FixIf future flexibility is desired, consider adding an `onlyOwner` function to toggle the `_mintable` flag. Alternatively, clearly document this immutability as a core design decision for the token's economic model.
StatusUnresolved
Info

Incomplete `_burnFrom` Function

I-01The provided source code for the `_burnFrom` internal function is truncated and therefore incomplete. While this function is not called by any other public or internal function in the provided code, its incompleteness represents a code quality issue and a potential bug if it were intended for future use or if other parts of the system rely on its full implementation. This affects code security (7.2).
IssueThe provided source code for the `_burnFrom` internal function is truncated and therefore incomplete. While this function is not called by any other public or internal function in the provided code, its incompleteness represents a code quality issue and a potential bug if it were intended for future use or if other parts of the system rely on its full implementation. This affects code security (7.2).
FixComplete the implementation of the `_burnFrom` function to ensure code correctness and maintainability. If it's not intended for use, consider removing it to avoid confusion.
StatusUnresolved
Info

Use of Older Solidity Version

I-02The contract uses `pragma solidity ^0.6.0`. While functional, newer Solidity versions (e.g., `^0.8.0`) offer additional security features (like default checked arithmetic), gas optimizations, and clearer error messages. Migrating to a newer version could improve overall code robustness and efficiency (7.2 Code Security).
IssueThe contract uses `pragma solidity ^0.6.0`. While functional, newer Solidity versions (e.g., `^0.8.0`) offer additional security features (like default checked arithmetic), gas optimizations, and clearer error messages. Migrating to a newer version could improve overall code robustness and efficiency (7.2 Code Security).
FixConsider upgrading the Solidity compiler version to `^0.8.0` or higher. Thoroughly test the contract after migration to ensure compatibility and correct functionality.
StatusUnresolved

Category Ratings

TechnicalLow7/10

The contract demonstrates good technical practices by utilizing SafeMath for all arithmetic operations, effectively preventing integer overflow/underflow vulnerabilities (7.2 Code Security). It adheres to the BEP20 standard, providing expected token functionalities like transfer, approve, and allowance. The Initializable pattern is correctly implemented for proxy compatibility, ensuring proper state initialization (7.1 Architecture). However, the _burnFrom internal function is incomplete in the provided source, which is a code quality concern (7.2 Code Security). Additionally, the use of an older Solidity version (^0.6.0) means it misses out on some newer compiler optimizations and security features (7.2 Code Security).

GovernanceHigh3/10

The contract implements a standard Ownable pattern, granting the _owner address significant control over critical functions such as mint and transferOwnership (7.3 Access Control). This centralized control allows the owner to increase the token supply if the _mintable flag is true, posing an economic risk if the owner's key is compromised (7.4 Economic). The _mintable flag is set once during initialization and cannot be changed, fixing the token's minting capability permanently (7.5 Governance). While typical for many tokens, this centralization requires robust owner key management.

UpgradesHigh1/10

The contract is designed as an upgradeable implementation, correctly using the Initializable base contract and an empty constructor (7.7 Upgrades). This setup ensures that state variables are initialized via the initialize function, which is called once through the proxy, preventing re-initialization issues. The use of EIP1967_TRANSPARENT proxy pattern implies that storage layout compatibility must be carefully maintained in future upgrades to avoid storage collisions (7.7 Upgrades). Overall, the upgradeability pattern is well-implemented for this type of proxy.

Security Checklist

Contract VerifiedPass
Ownership Renounced?
No Mint FunctionFail
Liquidity LockedFail
Not a ProxyFail
HoneypotNoneBuy Tax0.0%Sell Tax0.0%

Proxy Upgrade Controls

Proxy TypeEip1967 Transparent
AdminEOA (single key controls upgrades)
ImplementationVerified source

Holder Composition

29.3% in wallets1.4% in contracts
Effective Concentration29.9%

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

Show 4 more pairsShow less

The 20 remaining pairs hold $20.1K between them and are not listed.

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

Top-1 Unlocked Holder59.8%
Top-3 Unlocked82.3%

Key Addresses

Deployer
0x81b7…3cce
Unlocked LP Held By
0x73fe…e24e0x5eec…ab700x90f3…25190x9cbb…3e160xa306…cb4b0x2789…90bf0xf8ac…66660x5e79…ca580x384d…ff6e0x9b4c…7dcb

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

What Raised This Score

  • Ownership status UNKNOWN (owner could not be resolved)
  • Mintable supply — no cap found, dilution unbounded
  • Proxy contract (upgradeable — admin can replace logic)
  • Admin is EOA (single key controls upgrades)
  • Top-10 concentration > 20% (30.7% total → 29.9% effective; 29.3% in EOAs, 1.4% in contracts — mild)
  • Liquidity not locked, but no owner/deployer address holds LP — market-depth risk, not rug risk
  • LP top1 unlocked holder = 59.8% (independent LP — depth risk, pool = 34% of DEX liquidity)
  • LP top3 unlocked holders = 82.3% (independent LP — depth risk, pool = 34% of DEX liquidity)
  • 1 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

Related Audits

BNB Attestation (BAS)High RiskStarpower Network (STAR)High RiskXRP Token (XRP)High RiskBTCB Token (BTCB)High Risk孙小圣High RiskBTR token (BTR)High Risk

Would You Like a More Detailed Audit of Filecoin?

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

Get Detailed Audit