ZooBC wiki
Apps and building on ZooBC

Apps on ZooBC

An app on ZooBC is a game or a bet whose rules are built into every node. Each move is a transaction, the game's state is kept on the chain, and when the game ends the protocol itself pays out. No operator can refuse to pay, no server sits in the middle, and anyone can replay a game from its transactions.

A move is a transaction, every node applies the same rules, and the protocol pays: 8 board games, 6 solo games and 4 dice games.
A move is a transaction, every node applies the same rules, and the protocol pays: 8 board games, 6 solo games and 4 dice games.

Eighteen built-in games

GroupGames (type number)Seats
Board gamestic-tac-toe (1), chess (2), connect-4 (3), checkers (4), reversi (5), gomoku (6), battleship (7), dots-and-boxes (8)2 to 4; battleship exactly 2
Solo games against the housetwo dice (16), coin flip (17), roulette (18), slots (19), lottery (20), crash (21)1
Dice gamesludo (32), pig (33), race (34: snakes and ladders), monopoly-lite (35)2 to 4

Any other type is refused as unknown.

Six transaction types drive them all: CreateApp (24), JoinApp (25), AppMove (26), ResignApp (27), ClaimAppTimeout (28) and SettleApp (39). A stake can be ZBC or a token; the pot, the rake and the payout are then all in that token. Every node checks each move against the game's rules, and an illegal move is refused. Games can be read and played through any node's API (node API) or from the command line with zbc-cli app-create, app-join, app-move, app-resign, app-claim and app-settle (command-line tools).

No virtual machine

ZooBC has no virtual machine and no transaction that uploads code. Chains with smart contracts let anyone deploy new game logic; on ZooBC a new kind of game means new rules in the node itself. In exchange, every game's rules are the same on every node, and no app needs a store's approval: any web page or program can play through a node's API.

Randomness comes from block seeds that the producer cannot choose (block seed (VRF)). Every apps draw hashes the seed under its own tag, "zbc-apps", so games never share a random stream with block production or the coinbase lottery.

Articles in this category

See also

Articles in this topic