Phishing dapp checkers often focus on detecting structural contract patterns that restrict token transfers in ways that can trap buyers. A central pattern is the presence of require() statements in the transfer function that revert transactions unless the sender or recipient is on a whitelist. Mechanically, this means buy orders from non-whitelisted addresses may succeed, but sell orders revert, effectively locking tokens in the buyer’s wallet. This pattern can be identified by inspecting the contract’s transfer logic without executing any trades, revealing a built-in exit barrier that is invisible on price charts or trading volume alone.
This structural pattern becomes risk-relevant when the whitelist is owner-controlled and mutable after launch, allowing the deployer to selectively block sells from most holders. Such control can enable soft honeypots, where the owner permits buys to attract liquidity but prevents sells to trap funds. However, the pattern can be benign if the whitelist is fixed at deployment or used for legitimate compliance reasons, such as regulatory restrictions or private sale allocations. Without owner-modifiability, the inability to sell may reflect a temporary or transparent mechanism rather than a malicious trap.
Additional signals that would meaningfully alter the risk assessment include the presence of owner-controlled adjustable sell taxes or pause functions, which can be toggled to restrict exits dynamically. Conversely, evidence that mint or freeze authorities have been renounced reduces concerns about sudden supply inflation or transfer freezes, respectively. Observing a proxy upgrade pattern without a timelock or multisig can increase risk by enabling rapid logic changes post-launch. Conversely, transparent documentation of whitelist policies or governance mechanisms that limit owner powers can mitigate concerns, showing the pattern is part of a controlled operational design.
When this whitelist-restricted transfer pattern combines with other common conditions such as adjustable sell taxes or blacklist functions, the range of outcomes broadens from simple exit restrictions to complex layered traps. For instance, an owner might whitelist a few addresses to sell while imposing high sell taxes or blacklisting others, creating a multi-tiered barrier to exit. In some cases, pause functions can be activated to halt all transfers temporarily, compounding risks. While these combinations often correlate with elevated exit risk, they do not guarantee malicious intent; some projects use layered controls for staged launches or regulatory compliance, which would change the reading depending on transparency and governance constraints.