NFTDealers::list() is restricted to whitelisted users, non-whitelisted holders cannot relist NFTs despite the documented resaleflow.
The intended behavior, according to the protocol documentation, is that users who are not in the whitelist cannot create NFTs, but they can still participate in the secondary market by buying NFTs, relisting them, updating prices, canceling listings, and
collecting USDC after a sale.
The issue is that list() is gated by onlyWhitelisted, which prevents any non-whitelisted holder from creating a resale listing. As a result, secondary owners who are not whitelisted cannot relist NFTs even though this is an explicitly documented user permission, breaking the documented resale flow and reducing the liquidity of already circulating NFTs.
Likelihood: High
The issue occurs during normal protocol usage whenever a non-whitelisted user acquires an NFT and attempts to relist it.
The failure is deterministic because the resale entry point is directly blocked by the onlyWhitelisted modifier.
Impact: Medium
Secondary owners who are not whitelisted lose access to the resale flow that the documentation explicitly says should remain available to them.
This breaks the documented market model and reduces the expected liquidity and utility of NFTs after the first sale.
The following test shows that a non-whitelisted user can buy an NFT but cannot relist it, even though the protocol documentation states that non-whitelisted users should still be able to announce NFTs.
Remove the whitelist restriction from list() so non-whitelisted NFT holders can continue accessing the documented secondary-market resale flow.
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.