The contract allows users to burn their soulbound tokens, enabling them to fully delete their existing profile. This contradicts the premise of a permanent, non-transferable identity token.
Soulbound Integrity Compromise
A truly soulbound token is expected to be tied indefinitely to a wallet, without a mechanism to discard it.
By allowing burnProfile
, the contract provides an escape hatch, letting users erase all evidence of having owned a particular profile.
Profile Reset
After burning, there is no restriction preventing the same user from calling mintProfile
again, effectively resetting their on-chain identity and erasing any prior reputation or negative history.
Loss of Persistence: The “soulbound” concept is undermined if a user can simply remove and recreate profiles at will.
Reputation Bypass: Users with negative reputations or suspicious actions can reset their profiles to clear any potential stigma associated with their addresses.
Manual Review: Inspection of burnProfile()
shows no gating conditions beyond ownership.
Remove or Restrict Burn Function
Remove burnProfile
altogether if perpetual identity is desired.
Alternatively, allow only the contract owner or a specific governance process to burn tokens under strict conditions.
Enforce Permanence
If the project demands an eternal record of each wallet’s profile, burn actions should be eliminated, or replaced with an “archive” concept that preserves data rather than wiping it.
Please read the CodeHawks documentation to know which submissions are valid. If you disagree, provide a coded PoC and explain the real likelyhood and the detailed impact on the mainnet without any supposition (if, it could, etc) to prove your point.
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.