The protocol intends profile NFTs to be soulbound and permanently non-transferable.
Although transfer functions revert, approval-related functions inherited from ERC721 remain enabled.
Users may still call approve() and setApprovalForAll() successfully even though approved operators cannot ultimately transfer tokens.
This creates misleading protocol behavior and inconsistent UX for users and integrators.
Likelihood:
Wallets and NFT marketplaces commonly expose approval functionality to users.
Users may unintentionally approve operators assuming transfers are possible.
Impact:
Users may become confused about actual NFT transferability.
Integrators may incorrectly assume approved operators can move profile NFTs.
Protocol behavior becomes inconsistent with soulbound expectations.
The following test demonstrates that approvals can still be granted even though transfers always revert.
Disable approval-related functionality for soulbound tokens.
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.