A session-based card game with instant off-chain play and secure on-chain settlement.
Knockout is a real-time, multiplayer card battle game that demonstrates how session-based architecture can unlock fast, user-friendly consumer DeFi experiences. In Knockout, players join a match by staking once, then play multiple high-speed rounds instantly without waiting for blockchain confirmations or paying gas fees for every action. Gameplay is competitive and elimination-based: players use attack, defense, and strategy cards in simultaneous rounds, and are knocked out when their health reaches zero. The final surviving player wins the entire stake, which is settled securely on-chain at the end of the session.
The core idea behind Knockout is to separate high-frequency user actions from on-chain settlement. Instead of forcing every move on-chain, the game runs inside a session where state updates happen off-chain in real time, while funds remain safely locked by smart contracts. This results in Web2-smooth gameplay with Web3-grade security. The project also explores identity and UX improvements by using human-readable names and policy-based permissions, removing the friction typically associated with crypto wallets. Knockout serves as a proof-of-concept for how games, apps, and financial interactions can feel instant while still remaining trustless and verifiable.
Knockout is built using a layered architecture that combines a browser-based game client, an off-chain session engine, and on-chain settlement logic. The frontend is a Next.js application written in TypeScript, responsible for rendering the game UI, handling player input, and displaying real-time updates. A lightweight game engine handles card rules, health calculations, round timers, and eliminations. Communication between players and the game engine happens over WebSockets, enabling simultaneous card selection and instant round resolution.
On the blockchain side, Sui smart contracts written in Move manage security-critical components such as match escrow, session objects, and final reward distribution. Programmable Transaction Blocks (PTBs) are used at match start to bundle multiple actions—staking funds, registering players, and creating session permissions—into a single, seamless transaction. During gameplay, the project integrates Yellow Network’s state-channel-based SDK to manage session balances and off-chain state transitions without gas costs. ENS is used as an identity and policy layer, allowing players to appear under human-readable names and define spending or auto-approval rules once, which can then be reused across sessions. Together, these technologies create a hacky but powerful system where complex cross-chain and on-chain interactions are reduced to a fast, intuitive gaming experience.

