290 challenges · 17 vulnerability classes · 9 languages
Security challenges.
Real code, single-line vulnerabilities. Filter by stack, difficulty, or vulnerability class.
290total
83easy
146medium
61hard
hard
EtherKing Throne
EtherKing is a fully on-chain casino game intended for mainnet. Players send ETH to ascend the throne, and the lucky king who pushes the prize vault up to *exactly* 10 ETH scoops the entire pot. The team is proud of how 'simple and unhackable' the win logic is. Before they list it on the front page, review the contracts and decide whether the jackpot can really be won — and kept claimable — as intended.
LanguagesolidityVulnerabilityBusiness LogicDomainBlockchain
200 ptsOpen challenge →
easy
PiggyVault Savings
PiggyVault is a personal ETH savings contract for a small DeFi savings dApp. Users deposit funds and only the vault owner should be able to withdraw. To make the contract work smoothly with the companion mobile dApp — which routes calls through a relayer helper contract — the team rewrote the withdrawal guard. Review the contracts and find out whether the owner's funds are really safe.
LanguagesolidityVulnerabilityAuthenticationDomainBlockchain
100 ptsOpen challenge →
hard
Atomic Zap Router
ZapRouter is a gas-saving helper for an NFT marketplace that lets users batch several on-chain actions into one transaction. Power users call multicall(bytes[]) to mint multiple Genesis Pass NFTs atomically without paying gas for each individual call. The team prides itself on a tiny, audited core. Review the batching logic and the priced mint path — does paying for a batch always cost what it should?
LanguagesolidityVulnerabilityWeb3DomainBlockchain
200 ptsOpen challenge →
easy
Keep Me Logged In
ShiftPay is a Spring Boot payroll portal where hourly workers sign in to view payslips and update their bank deposit details. To keep people signed in across visits, the team added a 'Keep me logged in' option that drops a long-lived remember-me cookie, and a filter reads that cookie to auto-authenticate returning users. Review how the remember-me token is generated and trusted before a forged cookie hands someone else's paychecks to an attacker.
LanguagejavaVulnerabilityAuthenticationDomainWeb
100 ptsOpen challenge →
Showing 12 of 290
Full archive
Premium unlocks all 290 challenges.
Full challenge access, the complete archive, and learning paths.
See pricing