ZooBC wiki
Economics and governance

Account rent and pruning

Every ZooBC account that holds ZBC pays a small, fixed rent once per period: on mainnet, 0.01 ZBC every 30 days at the starting price. Every node keeps every account in its state for as long as the account exists, and rent is what eventually clears the accounts that nobody uses. An account whose balance cannot cover its rent is pruned, and its last dust goes to the longevity pool.

Why accounts pay rent

A blockchain's state is shared: every node stores every account, balance and record. Charging for that space stops the chain from filling up with abandoned and junk accounts, so paying is not optional. Rent is not interest either: nobody earns it for holding coins, and none of it goes to the ZooBC Foundation. It goes to the nodes that keep the state.

How it is charged

  • Price. 0.01 ZBC (1,000,000 atomic units) per 172,800 blocks, one 30-day snapshot cycle, on mainnet. The seats can vote the price (price votes).
  • Clock. The rent clock starts when the account first receives a positive balance, and the first rent falls due one period later.
  • No transaction. The chain takes the rent by itself at the due height. It therefore shows in the account's movements, /api/v1/accounts/<address>/movements, not among its transactions.
  • Destination. The rent goes to the longevity pool, which pays the nodes a slice in every block (pools).
  • Load. At most 2,000 accounts are charged in one block; the rest wait for the next block.

Pay or be pruned

At the due height the chain compares the balance with the rent:

  • The balance covers the rent: the rent is paid, and the next one falls due a period later.
  • The balance is smaller than the rent: the account is pruned. Its balance, its nonce (the counter of its transactions) and its rent clock go to zero, its split policy is cleared, and a group account is dissolved. The leftover dust goes to the longevity pool.
Every 30 days 0.01 ZBC rent goes to the longevity pool; at a due date, if the balance is at least the rent it is paid, otherwise the account is pruned and its dust goes to the longevity pool.
Every 30 days 0.01 ZBC rent goes to the longevity pool; at a due date, if the balance is at least the rent it is paid, otherwise the account is pruned and its dust goes to the longevity pool.

An account never goes into debt, and nobody pays its rent for it. If a pruned address receives ZBC again, it simply starts afresh, with a new rent clock and a new nonce. Accounts whose keys are lost leave the state in the same way, over time, and no ZBC is lost (ZBC is never burned).

Who pays and who does not

  • An account group pays the base rent plus a storage rent for its group record. Its members pay none, because their money lives on the group's address (account groups).
  • The longevity pool and the storage pool are exempt.

Account rent is the same flat amount for every account, whatever its balance. Other things kept on the chain pay rents of their own: datasets and files (datasets, files on the chain (DFS), decentralised storage pool), transactions kept for longer (paying to keep data (longevity)), tokens (token upkeep (persistence)), markets (markets and orders) and escrows (escrow).

Voting the price

The rent period follows the snapshot cycle. The seats can vote the price down to one atomic unit, at most halving it in a cycle, so that keeping an account need not become expensive in real terms if ZBC gains value. No vote can lift it above 10 ZBC per period (price votes).

Pruning an account is not the same as pruning history: nodes also drop old blocks and transactions after a while, as pruning of history explains.

See also