Listing.price is uint32 — Maximum Listing Price Capped at ~4,294 USDC, Higher Fee Tiers Unreachable
The marketplace defines three fee tiers: LOW (1%) for prices ≤ 1,000 USDC, MID (3%) for 1,001–10,000 USDC, and HIGH (5%) for > 10,000 USDC. These thresholds are stored as uint256.
Listing.price and the _price parameter in list() are declared as uint32, whose maximum value is 4,294,967,295. With USDC's 6 decimals, this caps the effective price at ~4,294.97 USDC, making the HIGH fee tier completely unreachable and the MID tier only partially usable.
Likelihood:
Every listing above ~4,294 USDC is affected — the Solidity compiler silently truncates any value exceeding uint32 max when passed as a function argument
The external calculateFees() view function accepts uint256 and returns correct results, masking this bug during testing
Impact:
HIGH fee tier (5%) is permanently unreachable — protocol loses significant fee revenue on high-value sales
NFTs worth more than ~4,294 USDC cannot be listed at their fair market value
Any attempt to list at a price > 4,294 USDC either silently truncates or reverts, depending on compiler settings
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.