The FLOKI contract is an ERC-20 token with added governance delegation features, integrating with external Tax and Treasury handlers. The audit identified a critical vulnerability in the transferFrom function, allowing transfers without sufficient allowance, and a high-severity issue in the vote delegation logic that could lead to transaction reverts. Centralized control over critical external handlers by an EOA owner also presents a significant risk. The core _transfer function was not provided for review, limiting the scope of the audit.

Honeypot, rug-pull and ownership checks
Is FLOKI 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 FLOKI contract is an ERC-20 token with added governance delegation features, integrating with external Tax and Treasury handlers.
Read the full analysis- Ownership not renounced — owner is an EOA
- Top-10 concentration > 50%
- 1 Critical finding(s) from audit
- 2 High finding(s) from audit
- 1 Medium finding(s) from audit
- 1 Low finding(s) from audit
Exact factors
- Ownership NOT renounced — owner is an EOA (single private key)
- Top-10 concentration > 50% (69.6% total → 62.1% effective; 57.1% in EOAs, 12.5% in contracts — heavy)
- 1 Critical finding(s) from audit
- 2 High finding(s) from audit
- 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
Security Checklist
as of audit · Sep 4Holders
as of audit · Sep 4, 2026- Contractstreasury, vesting, bridge, staking12.5%
- Walletsanonymous holders, free to sell57.1%
- Everyone elsethe rest of the supply30.4%
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 locked or burned.
0xc954…e3a80x2b9d…0ab00x5c9b…49400x8d8a…2d6b0x09be…96180xf385…5f850x0333…2ddf0xa119…b9510x78c4…8fd7No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
CriticaltransferFrom Logic Flaw Allows Unauthorized Transfers
The transferFrom function calls _transfer(sender, recipient, amount) *before* checking if currentAllowance >= amount and updating the allowance. This means tokens are transferred even if the allowance is insufficient, and then the transaction will revert on the require statement, but the tokens have already been moved. This allows an attacker to bypass allowance restrictions and transfer tokens without proper authorization, potentially draining funds from approved accounts.C-01
transferFrom Logic Flaw Allows Unauthorized TransfersIssue
The transferFrom function calls _transfer(sender, recipient, amount) *before* checking if currentAllowance >= amount and updating the allowance. This means tokens are transferred even if the allowance is insufficient, and then the transaction will revert on the require statement, but the tokens have already been moved. This allows an attacker to bypass allowance restrictions and transfer tokens without proper authorization, potentially draining funds from approved accounts.
Fix
Reorder the operations within transferFrom. The allowance check (require(currentAllowance >= amount)) and allowance update (_approve(sender, _msgSender(), currentAllowance - amount)) must occur *before* the _transfer(sender, recipient, amount) call.
Status
Unresolved
HighVote Tracking Inconsistency and Potential Reverts in _moveDelegates
The _moveDelegates function subtracts amount (which is uint224(delegatorBalance)) from the from delegate's vote count (fromRepOld). If fromRepOld is less than amount, this operation will cause an underflow and revert the transaction. This can occur if a delegator's balance changes (e.g., they transfer tokens) without their delegate's vote count being immediately adjusted, or if the from delegate has other delegators whose votes are not correctly accounted for in this specific operation. This can lead to a denial of service for delegation changes, hindering the governance mechanism.H-01
_moveDelegatesIssue
The _moveDelegates function subtracts amount (which is uint224(delegatorBalance)) from the from delegate's vote count (fromRepOld). If fromRepOld is less than amount, this operation will cause an underflow and revert the transaction. This can occur if a delegator's balance changes (e.g., they transfer tokens) without their delegate's vote count being immediately adjusted, or if the from delegate has other delegators whose votes are not correctly accounted for in this specific operation. This can lead to a denial of service for delegation changes, hindering the governance mechanism.
Fix
Ensure that fromRepOld is always greater than or equal to amount before subtraction. This might require a more robust mechanism for tracking and updating delegate vote counts, possibly by adjusting votes based on actual token balance changes or by ensuring fromRepOld accurately reflects the delegator's contribution being moved. Consider adding a require statement to explicitly check fromRepOld >= amount before subtraction.
Status
Unresolved
HighCentralized Control Over Critical External Handlers
The owner address has the exclusive privilege to call setTaxHandler and setTreasuryHandler, allowing them to change the addresses of ITaxHandler and ITreasuryHandler to any arbitrary contract. If the owner's private key is compromised or acts maliciously, they could replace these handlers with contracts designed to drain funds, impose exorbitant taxes, or otherwise disrupt token functionality, leading to significant financial loss for users.H-02
Issue
The owner address has the exclusive privilege to call setTaxHandler and setTreasuryHandler, allowing them to change the addresses of ITaxHandler and ITreasuryHandler to any arbitrary contract. If the owner's private key is compromised or acts maliciously, they could replace these handlers with contracts designed to drain funds, impose exorbitant taxes, or otherwise disrupt token functionality, leading to significant financial loss for users.
Fix
Implement a more decentralized or time-locked mechanism for changing critical external handler addresses. This could involve a multi-signature wallet for ownership, a timelock contract, or a community governance vote to approve such changes. This reduces the risk associated with a single point of failure.
Status
Unresolved
MediumMissing _transfer Function Implementation
The provided source code is truncated and does not include the implementation of the internal _transfer function. This function is fundamental to the core ERC-20 token logic, handling balance updates and event emissions. Without its full implementation, a comprehensive security assessment of token transfers, including potential reentrancy vectors, balance manipulation, or other vulnerabilities, cannot be performed.M-01
_transfer Function ImplementationIssue
The provided source code is truncated and does not include the implementation of the internal _transfer function. This function is fundamental to the core ERC-20 token logic, handling balance updates and event emissions. Without its full implementation, a comprehensive security assessment of token transfers, including potential reentrancy vectors, balance manipulation, or other vulnerabilities, cannot be performed.
Fix
Provide the complete source code for the _transfer function to allow for a thorough security review of the token's core transfer mechanism. Ensure it adheres to ERC-20 standards and best security practices, including checks for zero addresses, sufficient balances, and proper event emission.
Status
Unresolved
LowOwner as Externally Owned Account (EOA)
The contract owner is an Externally Owned Account (EOA). An EOA is controlled by a single private key, making it a single point of failure. If this private key is compromised, lost, or misused, an attacker could gain full control over the owner-privileged functions, including changing critical taxHandler and treasuryHandler addresses.L-01
Issue
The contract owner is an Externally Owned Account (EOA). An EOA is controlled by a single private key, making it a single point of failure. If this private key is compromised, lost, or misused, an attacker could gain full control over the owner-privileged functions, including changing critical taxHandler and treasuryHandler addresses.
Fix
Consider transferring ownership to a multi-signature wallet (e.g., Gnosis Safe) or a robust governance contract. This distributes control, requires multiple approvals for sensitive operations, and significantly reduces the risk associated with a single point of failure.
Status
Unresolved
InfoFixed Total Supply Minted to Deployer
In the constructor, the entire fixed totalSupply (1e13 * 1e9) is minted directly to the contract deployer (_msgSender()). This design choice means that all tokens are initially held by a single address, which then controls the initial distribution.I-01
Issue
In the constructor, the entire fixed totalSupply (1e13 * 1e9) is minted directly to the contract deployer (_msgSender()). This design choice means that all tokens are initially held by a single address, which then controls the initial distribution.
Fix
This is a design decision and not a vulnerability in itself. However, ensure that the distribution strategy from the deployer's address is transparent and aligns with the project's economic model and community expectations.
Status
Unresolved
InfoPotential uint32 Overflow in _writeCheckpoint (Extreme Unlikelihood)
The numCheckpoints[delegatee] = nCheckpoints + 1; operation increments a uint32 counter. While highly improbable, if a single delegatee were to accumulate 2^32 - 1 (approximately 4.2 billion) checkpoints, the next increment would cause a uint32 overflow, leading to a transaction revert. This would effectively halt further vote delegation changes for that specific delegatee.I-02
uint32 Overflow in _writeCheckpoint (Extreme Unlikelihood)Issue
The numCheckpoints[delegatee] = nCheckpoints + 1; operation increments a uint32 counter. While highly improbable, if a single delegatee were to accumulate 2^32 - 1 (approximately 4.2 billion) checkpoints, the next increment would cause a uint32 overflow, leading to a transaction revert. This would effectively halt further vote delegation changes for that specific delegatee.
Fix
Given the extreme unlikelihood of this scenario, no immediate action is strictly necessary. However, for absolute robustness, consider using a larger integer type (e.g., uint64) for numCheckpoints if the project anticipates an exceptionally high number of delegation changes per delegatee over a very long period.
Status
Unresolved
Analysis
AI Copilotas of audit · Sep 4The contract implements ERC-20 and governance delegation, utilizing OpenZeppelin's Ownable for access control (7.2 Code Security, 7.3 Access Control). However, a critical flaw in transferFrom allows token transfers to occur before allowance checks, leading to unauthorized spending. The _moveDelegates function contains logic that can cause reverts due to vote count inconsistencies, impacting governance functionality. The absence of the _transfer function's source code prevents a complete security assessment of core token transfers (7.2 Code Security).
The token design includes a fixed total supply minted entirely to the deployer, which is a clear distribution strategy (7.4 Economic). The governance delegation mechanism is based on a standard pattern, but its functionality is compromised by a high-severity bug in vote tracking. The owner, currently an EOA, has centralized control over taxHandler and treasuryHandler contracts, allowing them to change these critical external dependencies at will. This introduces a significant single point of failure and potential for malicious manipulation of tokenomics (7.5 Governance).
The contract is not designed as an upgradeable proxy (7.7 Upgrades). This eliminates upgrade-related risks such as proxy misconfigurations or logic contract vulnerabilities during upgrades. However, it also means that any discovered bugs or desired feature enhancements would require a new contract deployment and token migration.
Address the critical transferFrom vulnerability immediately by reordering the allowance check and update before the actual token transfer.
Rectify the vote tracking logic in _moveDelegates to prevent reverts and ensure consistent vote accounting. Consider implementing a multi-signature wallet for ownership to mitigate the risks associated with centralized control over critical external handlers and enhance operational security.
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, 202665High
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Frequently Asked Questions
What is the FLOKI contract address?
The FLOKI contract on Ethereum is 0xcf0c122c6b73ff809c693db761e7baebe62b6a2e. Compare it with the address the project itself publishes before trading: other contracts can carry the same name and ticker.
Is FLOKI a scam?
Quantum Audit's risk score for FLOKI is 65/100 (High risk) as of Sep 4, 2026, computed by a deterministic function from on-chain facts — Contract verified: Verified; Ownership: Retained; Mint: No mint; Liquidity lock: Locked; Upgradeability: Fixed code; Honeypot: None found; Buy / sell tax: 0.3% / 0.3%. A score is a dated snapshot of those facts, not a guarantee; each one is listed on this page.
Is FLOKI liquidity locked?
Liquidity lock: Locked (as of Sep 4, 2026). Total DEX liquidity: $7.69M.
Who holds FLOKI?
As of Sep 4, 2026, the 10 largest holders own 69.6% of the supply. The Holders section on this page shows who they are by holder type.
Would You Like a More Detailed Audit of FLOKI?
Paste the contract address into our AI-powered scanner for a deeper real-time report — free, with every scoring factor shown.
Get Detailed Audit Is this your token? Publish your own audit on this page