The protocol utilizes a modular architecture separating the Token interface, Controller logic, and Ledger state. While the separation of concerns is clear, the reliance on outdated Solidity versions and manual 'throw' statements poses significant risks. The system is highly centralized, granting the owner extensive control over token state and minting capabilities.

On-chain security analysis — is it a scam or legit?
Is FunFair Safe?
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 protocol utilizes a modular architecture separating the Token interface, Controller logic, and Ledger state.
Read the full analysis- Owner can change any holder's balance
- Liquidity not locked
- Top-10 concentration > 70%
Exact factors
- Owner can change any holder's balance (seize or credit tokens)
- Liquidity NOT locked (100% of the pool; this pool is 56% of DEX liquidity) — held by independent providers — market-depth risk
- Top-10 concentration > 70% (82.5% total → 82.5% effective; 82.5% in EOAs, 0.0% in contracts)
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 · Oct 30Holders
as of audit · Oct 30, 2026- Walletsanonymous holders, free to sell82.5%
- Everyone else73,218 holders17.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 Oct 30, 2026
Liquidity
as of audit · Oct 30- Uniswap v4USDTAnalysed$151.1K56.4%
- Uniswap v4ETH$33.9K12.7%
- Pancakeswap v3WETH$28.9K10.8%
- Uniswap v4ETH$15.7K5.9%
- Uniswap v2WETH$15.7K5.9%
- Uniswap v4USDT$14.9K5.6%
Show 4 more pairs
The 4 remaining pairs hold $96 between them and are not listed. The risk score reads depth across every pair.
The LP tokens of the analysed pool are not locked or burned, so whoever holds them can withdraw that liquidity.
0x78c9…c9490x2ad1…8bc90x6301…dbc20x43f9…40810xb4ee…a1dd0xe4e7…c2e40xf385…5f850xf137…29870x9cab…88830xb1b6…dfc8No privileged address appears among these holders: the unlocked liquidity sits with independent providers, not with the deployer.
Security Findings
HighWhat the token's controller can do
The contract lets its controller — a contract — change any holder's balance (seize or credit tokens). Nothing independent vouches for whoever holds them, so each is a live risk to holders.QA-POWERS
Issue
The contract lets its controller — a contract — change any holder's balance (seize or credit tokens). Nothing independent vouches for whoever holds them, so each is a live risk to holders.
Fix
Check who holds these powers and whether a timelock or multisig stands between them and holders.
Status
Acknowledged
MediumMissing Input Validation
Not confirmed by static analysis (the model's own reading of the source). Several functions do not validate that addresses are non-zero, which could lead to tokens being sent to the null address.M-01
Issue
Not confirmed by static analysis (the model's own reading of the source). Several functions do not validate that addresses are non-zero, which could lead to tokens being sent to the null address.
Fix
Add 'require(_to != address(0))' checks.
Status
Unresolved
MediumInsecure Ownership Transfer
Not confirmed by static analysis (the model's own reading of the source). The ownership transfer process is a two-step process but lacks a 'cancel' function if the wrong address is set.M-02
Issue
Not confirmed by static analysis (the model's own reading of the source). The ownership transfer process is a two-step process but lacks a 'cancel' function if the wrong address is set.
Fix
Add a function to reset the 'newOwner' variable.
Status
Unresolved
MediumUse of Deprecated 'throw' Keyword
Not confirmed by static analysis (the model's own reading of the source). The contract uses the 'throw' keyword, which is deprecated and consumes all remaining gas in a transaction, making it inefficient and potentially problematic for gas estimation.M-03
Issue
Not confirmed by static analysis (the model's own reading of the source). The contract uses the 'throw' keyword, which is deprecated and consumes all remaining gas in a transaction, making it inefficient and potentially problematic for gas estimation.
Fix
Replace all instances of 'throw' with 'revert()' or 'require()'.
Status
Unresolved
MediumCentralized Administrative Control
Not confirmed by static analysis (the model's own reading of the source). The 'owner' has absolute power to change the controller, stop minting, and lock transfers, creating a significant trust risk for token holders.M-04
Issue
Not confirmed by static analysis (the model's own reading of the source). The 'owner' has absolute power to change the controller, stop minting, and lock transfers, creating a significant trust risk for token holders.
Fix
Implement a DAO or multi-sig governance structure for all administrative functions.
Status
Unresolved
MediumLack of Reentrancy Protection
Not confirmed by static analysis (the model's own reading of the source). The transfer functions do not implement reentrancy guards, which could be exploited if the controller logic interacts with external contracts.M-05
Issue
Not confirmed by static analysis (the model's own reading of the source). The transfer functions do not implement reentrancy guards, which could be exploited if the controller logic interacts with external contracts.
Fix
Implement OpenZeppelin's ReentrancyGuard on all state-changing functions.
Status
Unresolved
MediumUnsafe Arithmetic in Ledger
Not confirmed by static analysis (the model's own reading of the source). The 'mint' function uses standard addition instead of the custom 'safeAdd' function, potentially leading to integer overflows.M-06
Issue
Not confirmed by static analysis (the model's own reading of the source). The 'mint' function uses standard addition instead of the custom 'safeAdd' function, potentially leading to integer overflows.
Fix
Use 'safeAdd' for all balance and supply updates.
Status
Unresolved
MediumLiquidity not locked
0.0% of the pool's LP is burned or time-locked. 100.0% is held, unlocked, by 9 address(es) other than the owner/deployer. No single one holds a majority: their exits thin the market rather than hand anyone the pool. Some pools are concentrated-liquidity (V3/V4) positions; shares above are by position as GoPlus reports them. This assessment covers the main pool, which holds 56% of the token's DEX liquidity; the other pools were not assessed.QA-LIQUIDITY
Issue
0.0% of the pool's LP is burned or time-locked. 100.0% is held, unlocked, by 9 address(es) other than the owner/deployer. No single one holds a majority: their exits thin the market rather than hand anyone the pool. Some pools are concentrated-liquidity (V3/V4) positions; shares above are by position as GoPlus reports them. This assessment covers the main pool, which holds 56% of the token's DEX liquidity; the other pools were not assessed.
Fix
Check the lock's end date and beneficiary on the locker's own page before relying on it.
Status
Acknowledged
InfoWho holds the supply
The ten largest holders own 82.5% of supply. What remains: 82.5% in wallets, 0.0% in other contracts. 73,228 holders in total.QA-HOLDERS
Issue
The ten largest holders own 82.5% of supply. What remains: 82.5% in wallets, 0.0% in other contracts. 73,228 holders in total.
Fix
Watch the largest wallets that are not exchanges, pools or locks — those are the ones that can move the price.
Status
Acknowledged
InfoIdentity verified by independent sources
Listed on CoinGecko as FUNToken (FUN), market cap $47M, rank #450. Traded on Binance. 73,228 holders. Verified by: CoinGecko, exchange listings.QA-IDENTITY
Issue
Listed on CoinGecko as FUNToken (FUN), market cap $47M, rank #450. Traded on Binance. 73,228 holders. Verified by: CoinGecko, exchange listings.
Fix
Match the contract address against the project's official channels before trading.
Status
Acknowledged
InfoThe market for this token
Liquidity $268K (DexScreener, all pools). 24h trading volume $1.5M (CoinGecko, all markets, daily snapshot). 24h trading volume $3.1M (DexScreener, all pools). CoinGecko's record for this coin: all-time high $0.191 on 2018-01-07; the price is now 97.794% below it.QA-MARKET
Issue
Liquidity $268K (DexScreener, all pools). 24h trading volume $1.5M (CoinGecko, all markets, daily snapshot). 24h trading volume $3.1M (DexScreener, all pools). CoinGecko's record for this coin: all-time high $0.191 on 2018-01-07; the price is now 97.794% below it.
Fix
Size any position to the liquidity and daily volume shown — they set how much you can sell and at what price.
Status
Acknowledged
InfoAsset class: Project token
A token issued by a project for use, governance or fundraising. Scored on its contract and market facts. The class itself adds no points; the contract and market facts decide the score. Basis: no class-specific evidence. Tokenomics — Supply: fixed — the contract has no mint function. Control: a contract. Code: not upgradeable (no proxy). Fees: no buy or sell tax. Market: $268K of DEX liquidity across 14 pools. Launch: 2354 days of market history.QA-PROFILE
Issue
A token issued by a project for use, governance or fundraising. Scored on its contract and market facts. The class itself adds no points; the contract and market facts decide the score. Basis: no class-specific evidence. Tokenomics — Supply: fixed — the contract has no mint function. Control: a contract. Code: not upgradeable (no proxy). Fees: no buy or sell tax. Market: $268K of DEX liquidity across 14 pools. Launch: 2354 days of market history.
Fix
Check the project's own documentation for what the token is used for; this report covers what the contract allows.
Status
Acknowledged
Analysis
AI Copilotas of audit · Oct 30The architecture follows a clean separation of concerns (7.1 Architecture). However, the use of 'throw' instead of 'revert' or 'require' is deprecated and can lead to gas exhaustion (7.2 Code Security). Access control is strictly enforced via modifiers (7.3 Access Control), but the lack of modern safety checks in arithmetic operations (despite a custom SafeMath) is concerning.
The protocol exhibits extreme centralization (7.5 Governance). The owner can stop minting, change controllers, and lock multisig transfers (7.4 Economic). There are no time-locks or multi-signature requirements for administrative actions, creating a single point of failure.
The system is modular, allowing for controller and ledger updates (7.7 Upgrades). However, these upgrades are controlled by a single owner address without a governance process. Operations (7.8 Operations) are highly dependent on the owner's ability to manage the controller-ledger relationship correctly.
Migrate the codebase to a modern Solidity version (0.8.x) to leverage built-in overflow protection and standard error handling.
Implement a multi-signature wallet or a decentralized governance contract to manage administrative functions, removing the single point of failure associated with the 'owner' address.
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.
- Oct 30, 202656Medium
Score changes are recorded as dated snapshots — history is append-only and cannot be edited.
Would You Like a More Detailed Audit of FunFair?
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? Add your links and get it Verified