Supply and emission
A ZooBC chain can never hold more than 33,333,333.33333333 ZBC. Part of that is credited at genesis; the rest, the coinbase pool, is released block by block over 15 years along a fixed curve that runs fastest at the start. There is no mining and no staking interest: the coinbase is the only source of new ZBC, and after 15 years nothing more is created.
The ceiling
The supply ceiling, total_supply, is 3,333,333,333,333,333 atomic units, that is 33,333,333.33333333 ZBC, on every chain. It covers everything together. When a chain is built, the genesis builder subtracts every genesis credit: the funded accounts, the treasury, the apps treasury that funds the apps pool, vesting schedules, and 10 ZBC for the own account of each genesis node. The rest is the coinbase pool. The builder then adds the credits back up and refuses to write a genesis whose total would pass the ceiling (genesis block).
The ceiling is therefore the total, not the coinbase: the coinbase pool is what genesis leaves of it.
Only the coinbase creates ZBC
New ZBC comes only from the coinbase, the new coins each block carries. Nobody mines it, no stake earns interest, and the treasury is an ordinary account that can spend what it holds but cannot mint. The coinbase does not go to the node that made the block either: it joins the block's reward pool together with the fees, and the coinbase lottery shares the pool among the registered nodes according to their participation score.
No rule destroys ZBC (ZBC is never burned), so the amount in existence grows along the schedule toward the ceiling.
The curve
The cumulative emission at time t, the total the coinbase has released since genesis, is:
D(t) = floor(y × pool)
y = (σ(3 + 3τ) − σ(3)) ÷ (σ(6) − σ(3))
σ(x) = 1 ÷ (1 + e^−x)
τ = (t − genesis time) ÷ 473,040,000 s, kept between 0 and 1
473,040,000 seconds is 15 years of 365 days. Every node computes the curve in double precision and floors the result to atomic units, so all nodes reach the same figure.
σ is the S-shaped logistic (sigmoid) function. Between x = 3 and x = 6 only its flattening tail is used, scaled so that y runs from 0 at genesis to 1 after 15 years. The release is therefore front-loaded:
| Time since genesis | Share of the pool released |
|---|---|
| 1 year | 18.4 % |
| 2 years | 33.7 % |
| about 3 years 4 months | 50 % |
| 5 years | 65.5 % |
| 10 years | 90.6 % |
| 15 years | 100 % |
The rate at genesis is about 18.3 times the rate at year 15, and after 15 years nothing more is released. The largest rewards come in the early years, while the registry is still small. There are no halvings with sudden steps, and the rate is not flat: it falls smoothly with every second.
Time, not blocks
A block's coinbase is:
coinbase = D(this block's timestamp) − D(previous block's timestamp)
Emission therefore follows the clock, not the block count. A block that follows a long gap carries more coinbase and one that follows a short gap less, while the total for a day stays the same. A slow stretch of blocks does not mint less, and a burst of fast blocks does not mint more. The number of transactions in a block and the stake of its producer play no part.
From version 0.5.8 a block must carry exactly the scheduled amount, empty blocks included; any other figure makes it invalid on every node. No coinbase is paid at heights 0 and 1.
Nobody can change it
The schedule is part of the consensus rules fixed at genesis, and every node checks each block's coinbase against it. It is not among the prices the registry's seats can vote (price votes), and no key can change it (ZooBC Foundation).