Competition Rules
Transparent, deterministic, and independently verifiable.
Vector Smart Chain
The competition runs exclusively on Vector Smart Chain (Chain ID 420042). The indexer verifies the chain ID before processing any transactions. No transactions from Ethereum, BSC, Polygon, Base, or any other network can qualify.
How Transactions Qualify
Beginning at START_BLOCK + 1, every successful (receipt.status == 1) transaction on VSC qualifies. Failed, reverted, and excluded protocol transactions are ignored. Qualifying transactions are processed in canonical blockchain order: by block number, then transaction index.
Deterministic Square Assignment
Each qualifying transaction receives exactly one unique square between 1 and 1000. The initial square is calculated as: keccak256(transactionHash + gameSeed + gameId) mod 1000 + 1. The same inputs always produce the same square — no randomness, no client-side logic.
Collision Handling
If a calculated square is already occupied, the indexer linearly probes the next square (433, 434, 435…) wrapping from 1000 back to 1. Every transaction receives a unique square. Exactly 1,000 transactions fill all 1,000 squares.
Hidden Ships & Fairness
Ship positions are configured before launch and locked. A commitment hash (keccak256 of game ID, seed, ship layout, and salt) is published before any transaction qualifies. Ships are never exposed to the browser before the reveal.
Prizes & VSG Calculation
Each winning hit awards $50 USD worth of VSG. The VSG amount is calculated from a configured price source at the time of detection. Payouts require admin approval — VSG is not sent automatically.
Completion & Verification
The competition ends after exactly 1,000 finalized transactions. After completion, an admin reveals the seed, salt, and ship layout. The entire game can then be independently reproduced and verified.
Confirmation Requirements
Transactions must reach the configured confirmation threshold (12 blocks) before becoming official shots. Detected transactions move through states: detected → confirming → finalized. Only finalized transactions count toward the 1,000-shot competition. Chain reorganizations are handled safely — unfinalized transactions can be invalidated without affecting the game.
