The ZooBC Foundation
You are looking at an old version of this page: revision #101 by zoobc.how, 2026-10-26 20:39 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.
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:
| Key | What it does |
|---|---|
| release authority | registers software releases by the hash of their files, and may revoke them |
| treasury | an ordinary account: it spends what it holds |
| market maker | an ordinary account |
| page authority | no rule of the chain reads it |
| seat owner | registers, updates, re-keys and removes its own node, and collects the node's winnings |
| node key | makes 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.
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).