Chess Bounty
Play chess against a rule-based AI for a private USDC wager on Arc testnet. A Dynamic-connected wallet is the purse; Unlink shields the money flow — you deposit USDC (public) into a private balance, then your wager is sent to the house as a shielded unlink1->unlink1 transfer that hides sender, recipient, and amount. Win and the house privately transfers 2x back; lose and it keeps the wager; draws refund — and each settlement is a real on-chain hash that proves the activity without revealing who or how much. The Node server is the authoritative referee: it owns the game state and runs the AI, so a win can't be forged, and it settles from a shielded float whose dynamic max wager (float/4) keeps the house solvent. The centerpiece is web/chess.js: a 437-line, zero-dependency chess engine and AI — negamax + alpha-beta + quiescence + MVV-LVA ordering + piece-square tables, perft-correct through depth 5 (4,865,609 nodes), with absolute-pin detection feeding live tactical commentary and three Elo tiers from one engine. Vanilla JS (esbuild, no framework); games and sessions persist to disk so a server restart never strands a wager; a server-side cookie remembers the wallet. MIT-licensed, arc-testnet, USDC ERC-20 (6 decimals).
Bitfiddling at Canteen!
1 (Solo) — Arjun Iyer
Chess vs a rule-based AI for a private USDC wager on Arc testnet — Dynamic purse + Unlink shielding