Contract Posture
The safety stance of the demo and the limits a reader should hold it to. This is the living-tier equivalent of the lottery's audit: it states design intent for an iterating contract rather than findings against one frozen deployment.
Safety stance
The demo is native Sepolia ETH only. It uses sponsor-funded prize pots, one entry per wallet, permissionless draw calls, pull-based claims, and block.prevrandao with a minimum four-epoch lookahead. Each child raffle is immutable once launched: there is no pause switch and no operator who can alter entries, the seed, or the result.
Empty-raffle refund
If a raffle receives no entries, the creator can cancel it after the deadline and recover the funded pot. Once any entry exists, the draw path is mandatory — the pot can only leave the contract through the draw and the winners' claims, never back to the creator.
Error decoding
The app preflights common blocked actions and decodes the contract's custom errors, so expected states — duplicate entry, draw before deadline, draw before the target block, or no claimable prize — surface as readable messages instead of raw wallet or RPC revert text.
Known limits
This is a testnet demo, not a production raffle — test ETH only, nothing real at stake. Randomness is RANDAO-based and inherits the standard proposer-bias residual accepted for permissionless, oracle-free draws; the lookahead bounds it but does not eliminate it. Because the contract is still iterating, treat these docs as a description of intent — the Current deployment block names whatever is live right now.
Back to Raffle docs.