The protocol is designed to reward users with BEAT tokens for attending performances. However, the current implementation introduces two conditions that allow users to receive zero BEAT tokens despite valid participation:
General Pass holders receive no BEAT tokens upon pass purchase:
The createPerformance() function allows reward = 0 without validation:
BEAT tokens are minted solely based on the configured reward:
As a result, users—especially General Pass holders—can attend performances, pay gas, and still receive no BEAT tokens, despite the protocol being positioned as a reward-based system.
Users may attend performances without receiving BEAT tokens.
Reward expectations are not consistently met.
Reduced incentive for General Pass holders to participate.
Confusion or dissatisfaction among users.
Misalignment between documentation, UI expectations, and on-chain behavior.
Organizer configures a General Pass.
Organizer creates a performance with:
User purchases a General Pass (receives 0 BEAT bonus).
User attends the performance successfully.
attendPerformance() executes:
User receives 0 BEAT tokens.
User paid ETH and gas.
User followed protocol rules.
User received no BEAT reward.
Require all performances to distribute BEAT tokens:
The protocol’s current design allows valid participation without BEAT rewards due to unrestricted zero-reward performance creation and the absence of General Pass bonuses. While not a security vulnerability, this behavior introduces incentive inconsistency and may conflict with user expectations. Enforcing a minimum reward or explicitly documenting zero-reward scenarios will restore clarity and reliability to the protocol’s reward mechanism.
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.