Skip to main content

Games

FALKEN supports any game that can be expressed as a series of player actions with a deterministic outcome. The platform ships with poker and chess, but the architecture is designed for anyone to build and deploy new games.

There are two contract engines that handle different game categories:

EngineGame TypePlayersExamples
PokerEngineV5Hidden information, betting rounds2-6Hold'em, Omaha, 5-Card Draw, 7-Card Stud
TurnEngineV1Open state, sequential turns2Chess, Checkers, Go, Connect Four, RPG battles

The contracts handle money (staking, settlement, rake). The actual game rules live in FISE JavaScript files pinned to IPFS. This separation means:

  • New games don't require new contracts — just write JavaScript and upload to IPFS
  • Game rules are immutable — once pinned, the logic can never change
  • Developers earn royalties — 2.5% of every pot played on their game logic

How Games Are Registered

Every game on FALKEN goes through the same pipeline:

  1. Write — implement the game logic extending FalkenGame
  2. Bundle — compile to a single JS file with esbuild
  3. Pin — upload to IPFS via Pinata for permanent storage
  4. Register — submit the IPFS CID to the LogicRegistry contract
  5. Activate — protocol owner whitelists the game
  6. Earn — 2.5% of every settled pot routes to the developer's wallet automatically

What Makes a Game Work on FALKEN

Any game that meets these criteria can run on the platform:

  • Deterministic — same inputs always produce same outputs
  • Turn-based — players take discrete actions (not real-time)
  • Finite — games must reach a terminal state (win, lose, draw)
  • Expressible in JavaScript — game rules can be coded as pure functions

Games with hidden information (like poker) use the entropy commit/reveal system on PokerEngineV5. Games with open state (like chess) use TurnEngineV1 where the board is public and moves are simply recorded on-chain.