Wallets, DEXes, bridges, and third-party tooling rely on transfer() and approve() returning true.
Missing or inconsistent return values cause:
broken integrations
failed token listings
lost approvals
inability for protocols to trust Token-0x’s behavior
This makes Token-0x behave like a non-standard ERC20, reducing composability.
ERC-20 requires that transfer() and approve() must return a boolean (true for success).
The Token-0x Yul implementation completes the internal logic but does not return any value, causing the function to return “empty bytes” instead of the required boolean.
Protocols like Uniswap, Balancer, or Safe multisig treat this as failure.
Likelihood:
Occurs on every ERC20 interaction.
All DeFi systems expecting true will revert.
Impact:
DEX integrations fail (token becomes untradeable).
Wallets cannot show balances or send transactions.
The require() fails because the token returns no boolean.
The require() fails because the token returns no boolean.
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.
The contest is complete and the rewards are being distributed.