FiberQuest

Autonomous retro gaming tournament platform on CKB Fiber Network. Your agent watches the game, tracks scores from RAM, and handles payments — you just play.

Fiber Network RetroArch Real CKB Stakes Block-Deterministic Open Source Handheld Support
24
Games Mapped
6
Platforms
<2s
Block Sync
60Hz
RAM Polling
View on GitHub Download Architecture
How It Works
1
Create a tournament Set the game, entry fee, player count, and block schedule. Your agent creates an on-chain tournament cell that anyone can discover.
2
Players join via intent cells Each player's agent creates an intent cell on CKB L1 signaling they want to join. The tournament manager discovers and registers them — no central server.
3
Block-deterministic start All agents monitor the chain. When the start block arrives, every agent starts simultaneously — zero ambiguity, no timestamp drift.
4
Play on any device RetroArch runs the game. The agent polls RAM at 60Hz via UDP, detecting every score change, KO, banana, and life lost in real time. Works on desktop, Pi, or handheld.
5
Autonomous settlement At end block, each agent submits scores to chain. Winner is deterministic — all agents calculate the same result. Payout via Fiber in under a second.
Tech Stack

Fiber Network

CKB's payment channel network. Entry fees flow through Fiber channels — instant micropayments, no on-chain fee per transaction. Hub routing for payouts.

CKB L1 Cells

Tournament state stored on-chain in cells. Intent cells for registration, score cells for results. Global discovery — any agent can find any tournament.

RetroArch UDP

READ_CORE_MEMORY / READ_CORE_RAM over UDP port 55355. 60Hz polling, 0% packet loss. Auto-detects legacy command format for handhelds.

Block Tracker

Smart chain polling — only scans on new blocks, not blind intervals. Rolling 50-block average for time estimates. WebSocket-ready for local CKB nodes.

Electron + Node.js

Cross-platform desktop app. Retro arcade UI (Press Start 2P). First open-source Node.js Fiber client library. No React, no frameworks — pure vanilla.

JoyID Wallet

Passkey-based CKB wallet for player authentication and tournament entry payment. No browser extensions — scan QR from your phone.

Agent Code Attestation

Each agent includes a code hash in its intent cell. Modified agents are rejected at registration — prevents cheating at the protocol level.

ROM Verification

CRC32 hash checking ensures all players run the same ROM version. Different revisions have different RAM layouts — verification prevents scoring errors.

Supported Platforms
SNES9 games
NES5 games
Mega Drive / Genesis5 games
N643 games
Master System3 games
Arcade (FBNeo)2 games
Tested Hardware
Linux x86_64 (desktop)
Raspberry Pi 5 (aarch64)
RG35XX H (Knulli / handheld)
Any RetroArch with network commands
Handhelds connect via WiFi UDP — play on the couch, agent runs on your desktop.
Installation
# Clone and run
git clone https://github.com/toastmanAu/fiberquest.git
cd fiberquest
npm install
npm start

# Or download the AppImage from GitHub Releases
curl -fsSL https://github.com/toastmanAu/fiberquest/releases/latest/download/install.sh | bash

# Requirements
# - Node.js 18+
# - RetroArch with network_cmd_enable = true
# - CKB testnet agent key (generated in app)
# - Fiber node (auto-detected or configured in settings)
Roadmap
v0.1 — Hackathon MVP: Fiber payments + RAM polling
v0.2 — Distributed tournaments: multi-machine, on-chain coordination
v0.3 — Trustless: intent cells, block-deterministic timing, agent attestation
v1.0 — Production testnet: full Fiber escrow, wallet UX, polished UI
Mainnet — Real money tournaments on CKB mainnet
Appchain — Axon L2 with consensus-native tournament rules
Links
GitHub Repo Releases v2 Architecture RAM Viewer CLAUDE.md