ZooBC wiki
ZooBC basics

The ZooBC Foundation

You are looking at an old version of this page: revision #156 by zoobc.how, 2026-10-26 21:37 UTC. See the current version

The ZooBC Foundation is the organisation behind ZooBC. On each chain it holds the 11 genesis seats of the node registry, and it publishes the public command-line tools. It has no special power over transactions or balances: the protocol gives each key one job, and some things no key can do at all.

The genesis seats

Each chain starts with 11 registered nodes written into its genesis block: the genesis seats, held by the Foundation. Every other operator joins the node registry and its seats through the queue (queue). Nobody picks the newcomers; they are admitted one at a time, at a pace the protocol sets. On mainnet the first newcomer is admitted 7 days after genesis, then one per cycle of 600 days divided by the counted seats, kept between 7 and 90 days: about 54.5 days while 11 seats are counted (admission pace). In that count the genesis seats weigh at most 11.

Once admitted, every active seat has the same chance to be drawn to make a block. The genesis seats follow the same rules as the others, and start at the same 20 % participation score as every new node.

Each chain starts with 11 genesis seats held by the ZooBC Foundation; other nodes wait in a queue and pass a turnstile, one admission per cycle, to further seats. Every active seat has the same chance to make blocks.
Each chain starts with 11 genesis seats held by the ZooBC Foundation; other nodes wait in a queue and pass a turnstile, one admission per cycle, to further seats. Every active seat has the same chance to make blocks.

The tools

The Foundation publishes the public command-line tools at github.com/zoobc/tools, under the MIT licence, in ten languages: C++, TypeScript, JavaScript, Python, Go, Rust, Kotlin, Swift, PHP and Perl. They talk to a node only through its public API, as any application can (command-line tools).

Keys and their jobs

ZooBC gives each key one job:

KeyWhat it does
release authorityregisters software releases by the hash of their files, and may revoke them
treasuryan ordinary account: it spends what it holds
market makeran ordinary account
page authorityno rule of the chain reads it
seat ownerregisters, updates, re-keys and removes its own node, and collects the node's winnings
node keymakes blocks and signs receipts, attestations and votes

From version 0.5.8 the four role keys (release authority, page authority, treasury and market maker) have four distinct addresses on all three chains, each kept on its own device. The genesis builder checks that they differ. Of the four, only the release authority has a power on the chain, and it may hold up to 1,000 ZBC at genesis to pay its fees. The seats hold a check on it: two thirds of them can veto a release, and two thirds holding their vote for a week can replace the authority (releases and updates).

Seat owners and node keys are explained in keys of a node.

Four keys, one job each: release authority registers or revokes a release hash, treasury spends its own balance, seat owner registers, changes or removes its node, node key makes blocks and signs receipts; there is no admin key.
Four keys, one job each: release authority registers or revokes a release hash, treasury spends its own balance, seat owner registers, changes or removes its node, node key makes blocks and signs receipts; there is no admin key.

What no key can do

  • There is no admin key in consensus. A rule, a parameter or a balance changes only through transactions that every node validates, or through the seats' bounded price votes (price votes); never through a signed message.
  • The genesis is fixed. Its accounts, seats, parameters and rule heights are part of the chain's identity.
  • Rule activation can be neither voted nor signed. A node binary that disagrees with the rule heights recorded for its chain refuses to run.
  • The treasury cannot mint. New ZBC comes only from the coinbase schedule (supply and emission).
  • A release registration is advisory. It guides only the nodes that chose to update themselves, and they check the hash against the chain. A node running a binary its operator chose is not moved.
  • Nobody approves transactions. Every node validates every transaction and block by the same rules, so the Foundation cannot approve, reverse or block a payment.

These guarantees hold because of the code every node runs, not because of anyone's promise. New ZBC is not mined or sold by anyone either: it follows a fixed schedule and is paid by lottery to the registered nodes in proportion to their score (coinbase lottery).

See also