The TwentyOne contract allows players to revert transactions when they lose, effectively enabling risk-free gambling. An attacker can try different hands and only commit winning ones, avoiding any losses except gas fees.
Atomic Game Execution:
Player can execute entire game (start, hit, call) in one transaction
Transaction can be reverted if outcome is unfavorable
No state persists between reverted attempts
No Revert Penalties:
Failed attempts only cost gas
No mechanism to prevent retry attempts
Players can attempt unlimited times
Risk-Free Gambling:
Players never have to accept losses
Only winning hands get committed
House edge effectively eliminated
Game Integrity:
No true gambling element
Honest players disadvantaged
Trust in game compromised
Manual Code Review
PoC exploit contract
Separate Game Actions:
Split game actions across multiple transactions
Require minimum blocks between actions
Non-Refundable Entry Fee:
Implement upfront fee that doesn't get refunded on revert
Commit-Reveal Pattern:
Players must commit to their actions before resolution
Game state must persist across transactions
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.