Quantum Audit Logo
Launch App

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

Is Fake World Assets Safe?

FWAEthereum
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 →
Last checked Sep 4, 2026 · 1 audit on record
SummaryAI Copilot

The FWAToken contract implements a fixed-supply ERC20 token with custom transfer restrictions and a Uniswap v4 integrated buyback mechanism.

Read the full analysis
What raised the score
  • Ownership not renounced — owner is an EOA
  • LP lock status UNKNOWN — the pool's LP could not be read
  • Token age < 30 days
  • 1 Critical 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)
  • LP lock status UNKNOWN — the pool's LP could not be read
  • Token age < 30 days (still settling)
  • 1 Critical 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 43 of 5 checks passed
Contract verifiedVerified
OwnershipRetained
MintNo mint
Liquidity lockUnknown
UpgradeabilityFixed code

Holders

as of audit · Sep 4, 2026
12.6%Contracts11.4%Wallets76.0%Everyone else
12.6%Contracts11.4%Wallets76.0%Everyone else
ContractsWalletsEveryone elseBubble area = share of supply
24.0%of supply sits with the top 10 holders
  • Contractstreasury, vesting, bridge, staking12.6%
  • Walletsanonymous holders, free to sell11.4%
  • Everyone elsethe rest of the supply76.0%
Effective concentrationwhat the score reads16.5%
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$832.3K across 3 pairs

The risk score reads depth across every pair.

LP tokensUnknown

Whether the LP tokens are locked could not be determined.

Analysed pool$823.4KShare of depth98.9%

Security Findings

1 Critical1 Medium1 Low
Critical

Uniswap V4 Callback Integer Underflow Leads to Infinite Allowance

The uniswapV4UnlockCallback function, invoked by the Uniswap v4 PoolManager during a swap, attempts to set an allowance for the poolManager to pull FWAToken from the contract. Specifically, _approve(address(this), address(poolManager), uint256(delta.amount0)) is called. In the buyback() scenario, the contract is buying FWAToken (currency0) and selling ETH (currency1). This implies delta.amount0 (the net change in FWAToken balance for the pool) will be a negative int256 value, as the pool sends FWAToken to the contract. Casting a negative int256 value to uint256 results in an integer underflow, yielding a very large (effectively infinite) uint256 value. This grants the `poo…C-01

Issue

The uniswapV4UnlockCallback function, invoked by the Uniswap v4 PoolManager during a swap, attempts to set an allowance for the poolManager to pull FWAToken from the contract. Specifically, _approve(address(this), address(poolManager), uint256(delta.amount0)) is called. In the buyback() scenario, the contract is buying FWAToken (currency0) and selling ETH (currency1). This implies delta.amount0 (the net change in FWAToken balance for the pool) will be a negative int256 value, as the pool sends FWAToken to the contract. Casting a negative int256 value to uint256 results in an integer underflow, yielding a very large (effectively infinite) uint256 value. This grants the `poo…

Fix

The uniswapV4UnlockCallback function's logic for setting allowances must be critically reviewed and corrected. For a buyback where FWAToken is received by the contract, no allowance should be granted to the poolManager for FWAToken. If an allowance is needed for other swap directions, ensure delta.amount0 is correctly handled (e.g., only if positive and representing an outgoing token transfer) and that appropriate access control (onlyHook) is maintained. Consider removing the _approve…

Status

Unresolved

Medium

Extensive Centralized Owner Privileges

The Ownable contract grants significant control to the owner address. The owner can: set isDistributor for any address, bypassing transfer restrictions; set the pool (IBuybackRouter) address, which receives a portion of bought FWAToken; set the routeSplit for depositors, purchasers, and burn, potentially manipulating token distribution; set buybackSqrtPriceLimitX96, influencing the buyback price; and approve any spender to transfer tokens from the contract using _approve(address spender, uint256 amount). While common in early-stage projects, this centralization introduces a single point of failure and trust, where a compromised owner key could lead to significant financial los…M-01

Issue

The Ownable contract grants significant control to the owner address. The owner can: set isDistributor for any address, bypassing transfer restrictions; set the pool (IBuybackRouter) address, which receives a portion of bought FWAToken; set the routeSplit for depositors, purchasers, and burn, potentially manipulating token distribution; set buybackSqrtPriceLimitX96, influencing the buyback price; and approve any spender to transfer tokens from the contract using _approve(address spender, uint256 amount). While common in early-stage projects, this centralization introduces a single point of failure and trust, where a compromised owner key could lead to significant financial los…

Fix

Consider implementing a multi-signature wallet (e.g., Gnosis Safe) for the owner address to reduce the risk of a single point of compromise. As the protocol matures, explore decentralizing control through a time-locked governance mechanism for critical parameters like the pool address and routeSplit to enhance trust and resilience.

Status

Unresolved

Low

Buyback Function Susceptible to Minor Denial of Service

The buyback() function includes a rate-limiting mechanism (block.number >= lastBuybackBlock + BUYBACK_DELAY_BLOCKS). A malicious actor could repeatedly call buyback() with the minimum required ETH (BUYBACK_INCREMENT is 1 ETH) just after the BUYBACK_DELAY_BLOCKS period. This action would effectively reset lastBuybackBlock, preventing other users from executing larger or more impactful buybacks for the duration of the delay. While the cost of 1 ETH per call acts as a deterrent, it could still be used to disrupt buyback operations or create an unfavorable user experience.L-01

Issue

The buyback() function includes a rate-limiting mechanism (block.number >= lastBuybackBlock + BUYBACK_DELAY_BLOCKS). A malicious actor could repeatedly call buyback() with the minimum required ETH (BUYBACK_INCREMENT is 1 ETH) just after the BUYBACK_DELAY_BLOCKS period. This action would effectively reset lastBuybackBlock, preventing other users from executing larger or more impactful buybacks for the duration of the delay. While the cost of 1 ETH per call acts as a deterrent, it could still be used to disrupt buyback operations or create an unfavorable user experience.

Fix

Evaluate if the BUYBACK_DELAY_BLOCKS and BUYBACK_INCREMENT are appropriately balanced for the intended operational frequency and cost. Consider increasing the BUYBACK_INCREMENT or implementing a dynamic delay based on recent buyback activity or a minimum ETH amount for the caller to prevent trivial denial-of-service attempts.

Status

Unresolved

Analysis

AI Copilotas of audit · Sep 4
Executive SummaryWhat the contract is and what the review found

The FWAToken contract implements a fixed-supply ERC20 token with custom transfer restrictions and a Uniswap v4 integrated buyback mechanism. While leveraging battle-tested libraries like Solady and incorporating reentrancy protection, a critical vulnerability was identified in the Uniswap v4 callback logic. This flaw, involving an integer underflow during an allowance grant, could lead to the unauthorized draining of the contract's FWAToken balance. Additionally, the contract exhibits centralized owner privileges and a minor denial-of-service vector for its buyback function.

Technical8/10Low risk

The contract demonstrates good architectural practices (7.1) by using immutable variables for critical external dependencies and inheriting ReentrancyGuard for code security (7.2). Custom error types enhance readability and gas efficiency. However, a critical flaw exists in the Uniswap v4 callback's handling of BalanceDelta values, leading to an integer underflow and unauthorized allowance grant (7.2). The interaction between custom transfer restrictions and the Uniswap v4 callback also presents an access control (7.3) bypass for the PoolManager.

Governance3/10High risk

The tokenomics (7.4) feature a fixed supply and a buyback mechanism designed to accrue value and distribute tokens, with configurable routing splits and a price limit to protect against extreme market movements. However, the owner retains significant control over key economic parameters, including setting distributors, the buyback router, and routing splits, which introduces centralization risk (7.5). The permissionless buyback function also has a minor denial-of-service vector (7.8) due to its rate-limiting mechanism.

Upgrades5/10Medium risk

The FWAToken contract is not designed as an upgradeable proxy (7.7). Therefore, there are no direct upgrade safety concerns. Any changes to the contract logic would require a new deployment and migration of assets, which is a standard practice for non-upgradeable contracts.

Final RecommendationWhat to do about this score

Address the critical integer underflow vulnerability in the uniswapV4UnlockCallback immediately to prevent potential draining of FWAToken.

Thoroughly review all interactions with external Uniswap v4 components, especially regarding token transfers and allowances, to ensure they align with the intended security model. Consider implementing a multi-signature wallet for the owner address to mitigate risks associated with centralized control over critical parameters and explore progressive decentralization of governance for key economic settings as the protocol matures.

Contract & Record

1 audit on record
TypeFWAToken
NetworkEthereum
Token age11d
Contract0xa0df…c845
Deployer0x0198…e8cb
Badge for your website
Fake World Assets security record badge

Free for any token on the record. It links to this page and always shows the current score and the date it was checked.

Audit History
  1. Sep 4, 202657Medium
  2. Jul 28, 202672High

Score changes are recorded as dated snapshots — history is append-only and cannot be edited.

Would You Like a More Detailed Audit of Fake World Assets?

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

Get Detailed Audit Is this your token? Publish your own audit on this page