Per EIP-20 (ERC-20), implementations MUST emit a Transfer(address indexed from, address indexed to, uint256 value) event when tokens are minted, with from == address(0) for mint operations. Emitting this event enables wallets, block explorers and indexers (e.g., Etherscan, The Graph) to detect supply changes and token transfers.
The _mint implementation updates totalSupply and the recipient balance using inline assembly but does not emit the required Transfer(address(0), to, value) event (no logN call implemented). As a result, on-chain state is updated but off-chain indexers and wallets will not register the mint activity.
Likelihood:
Every time _mint is called, the balance and totalSupply change but no Transfer event is emitted.
Any public or internal function that relies on _mint for emissions (airdrop, rewards, admin mint) will exhibit this behavior 100% of the time.
Impact:
Broken indexing: Block explorers, analytics dashboards, and subgraphs that depend on Transfer logs will not detect minted tokens or supply changes.
Standard violation: The token is not fully ERC‑20 compliant, which can block listings or integrations with protocols that enforce strict EIP‑20 behaviour.
User confusion: A user’s balance increases after a mint, but their wallet or explorer shows no corresponding Transfer in the activity history, making behavior look suspicious or buggy.
Run:
Output:
missing event emission
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.