A fully decentralized chess platform built on Freenet, where all game state, rankings, and presence are replicated across peers with no central server.

Stars

6

7-day growth

No data

Forks

3

Open issues

0

License

MIT

Last updated

2026-07-30

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

Pioneers a serverless architecture for real-time multiplayer chess with verifiable Elo ratings, proof-of-work anti-spam, and deterministic convergence guarantees.

Who it is for

  • Chess enthusiasts seeking a decentralized alternative
  • Developers exploring peer-to-peer and Freenet applications
  • Privacy-conscious players who distrust central servers

Use cases

  • Playing chess without trusting a central authority
  • Live spectating any ongoing game with real-time updates
  • Searching and replaying past games via shareable links
  • Exporting and importing accounts across devices

Strengths

  • No central server: all data lives in Freenet contracts replicated across peers
  • Verifiable Elo ratings through co-signed game certificates
  • Anti-spam layers including proof-of-work, per-creator quotas, and global caps
  • Deterministic convergence via idempotent commutative monoids resolving conflicts

Considerations

  • Colluding keys can farm ratings by co-signing fabricated results
  • Nicknames are not unique; identity is tied to the key
  • Keys are the sole account credential with no recovery mechanism
  • Archive capacity capped at 16,000 games per day (1000 per shard × 16 buckets)

README quick start

FreeChess


A decentralized chess site built on Freenet. Play, watch, search and replay games — with no server anywhere in the picture.

Every game, the lobby, the Elo ranking, player presence and the shared history live in Freenet contracts, replicated across peers. The only thing that never leaves your device is your signing key.


What it does

  • Play chess. Full rules: castling, en passant, promotion, checkmate, stalemate, threefold repetition, the fifty-move rule, and clocks with Fischer increment.
  • Watch any game live. Every game is public by default. The home page shows the current board of every game in progress, updating in real time.
  • Search. Find games by player nickname or game id.
  • Elo ranking. Ratings are verifiable, not self-declared (see below).
  • Bullet / Blitz / Rapid / Classical, classified by estimated duration.
  • Presence. See who is online, away or offline.
  • Challenge someone directly — including a spectator you noticed watching the same game as you.
  • Shareable replays. Every game gets a link; open it and scrub through the moves. Games export as PGN.
  • Portable accounts. Export your account as a single string and import it on another device.
  • Anti-spam. Creating a game costs proof-of-work, and each player has a quota of open games.

How it works

Freenet's core abstraction is a contract: a WebAssembly module that defines both a piece of public state and the rules for merging concurrent updates to it. A contract's key is BLAKE3(BLAKE3(wasm) ‖ params), so the data's identity is bound to the code that governs it — you never have to trust the peer serving it.

FreeChess uses four contracts and one delegate.

ComponentRole
game-contractOne instance per game: the signed move list, the sealed opponent seat, the result.
lobby-contractA singleton: live games (each with a signed board snapshot), the Elo ranking, and presence.
archive-contractThe shared history, sharded into buckets of 1000 games.
player-contractOne instance per player: nickname and certified game history.
chess-delegateRuns locally. Holds the private signing key — the one thing not replicated.

One subscription drives the home page

The lobby carries a signed FEN snapshot for every running game, so a clie

Description

Tiny chess platform in freenet.

Related repositories

Similar projects matched by category, topics, and programming language.

l0ng-ai
Featured
l0ng-ai GitHub avatar

tty7

tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.

Developer ToolsCLI & Terminal
359
steelbrain
Featured
steelbrain GitHub avatar

reims-vgpu

reims-vgpu is an experimental virtual GPU for macOS guests that uses QEMU to decode the guest's GPU command stream and execute it through Metal or Vulkan, leveraging the built-in AppleParavirtGPU driver without requiring custom kexts.

Desktop Apps
143
m-novotny
Featured
m-novotny GitHub avatar

memguard-rs

A Rust library that provides secure memory handling primitives including zeroization on drop, memory locking, constant-time comparison, and compile-time guarded regions, with zero dependencies and no_std support.

Embedded & IoTSecurity
131