Although transfer functions are blocked, users can still call approve() to grant transfer rights to another address. This indirectly allows transfers, bypassing the soulbound restriction.
Users can approve another address to move their NFT, allowing indirect transfers.
The contract overrides transferFrom() and safeTransferFrom() but does not block approve().
This violates the core principle of a soulbound token.
Users can sell or transfer their soulbound NFT through an intermediary, breaking the contract’s core logic.
Could lead to unauthorized transfers if approvals are exploited.
Manual code review
Override approve() and setApprovalForAll() to prevent any form of token approval:
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.