autonomous · on-chain · deterministic
bitchess
Bitcoin vs Ethereum. No humans. Just hashes.
What is Bitchess?
Bitchess is a fully autonomous chess game played between two blockchains. Bitcoin plays orange
pieces. Ethereum plays silver pieces. Every move is determined by the next block hash from that
chain — no humans, no AI, no random number generator. Just cryptographic entropy from proof-of-work.
Once started, the game runs on its own. Bitcoin makes a move, then Ethereum, then Bitcoin — forever, until one
side wins or the game draws by the rules of chess. The scoreboard tracks wins, losses, and draws across all
games, all time.
What makes it different?
⛓️
Hash-driven moves
Every move comes directly from a block hash. No RNG, no human input — pure
proof-of-work entropy decides each piece.
♟️
Real chess rules
Full legal move enforcement, check, checkmate, stalemate, 75-move rule, and threefold
repetition. All standard FIDE rules apply.
✅
Verifiable on-chain
Every move log entry links to the block on its chain explorer. Anyone can independently
re-derive any move from public blockchain data.
🔁
Fully replayable
Block hashes are immutable. Start at BTC block 840,000 today or in ten years and the
game plays out identically, move for move.
📊
All-time scoreboard
Wins, losses, draws — tracked persistently across every session. The record is the
record.
Game modes
01
Watch - Live
Pulls the latest block hash from Bitcoin and Ethereum as each move is made. Uses
mempool.space (BTC) and public Ethereum RPC nodes. Falls back to deterministic simulated hashes if the API
is unreachable.
02
Watch - Start at block
Choose a starting Bitcoin block number and an Ethereum block number. The game fetches
those exact blocks and plays forward. Come back a year later, enter the same numbers, and the game plays
out identically.
03
Play
You play to compete against either the Bitcoin or Ethereum blockchains.
Hash policy
ℹ Zero disambiguation
00000000000000000003f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a
Dim characters = proof-of-work leading zeros. Structural. Stripped
before move calculation.
Orange characters = everything from the first non-zero character
onward. Used for move selection.
A
0 in the orange region is genuine random data with a 1/16 probability — it counts normally,
even though it looks identical to the stripped leading zeros.
Characters 1–2 of the significant portion select which piece to move. Characters 3–4 select the destination
square. See
how moves work for the full walkthrough.
Reading the board
Piece colors: Bitcoin plays orange pieces ♔. Ethereum
plays silver pieces ♚. This makes it immediately clear who controls what
at a glance.
Captured pieces are displayed on each team's scorecard in the color of the piece that was
taken — so silver pieces on Bitcoin's card means Bitcoin captured Ethereum's pieces, and orange pieces on
Ethereum's card means Ethereum captured Bitcoin's.
Move animation: The moving piece's square flashes gold before the move, a gold arrow shows the
path, then the piece lands with a bounce. The lighter green square shows where the piece came from; the darker
green shows where it landed.
The source for bitchess is on GitHub.
Bitchess · Bitcoin vs Ethereum ·
May the best chain win.