ZooBC wiki
ZooBC basics

What you can do on ZooBC

Every ZooBC feature is a transaction type built into the protocol, with fixed rules that every node applies in the same way. From version 0.5.8 there are 73 transaction type numbers (transactions). This page is a map of what they let you do, with a link to the article on each.

Payments

  • Send ZBC from one account to another.
  • Stream a payment that vests evenly over time; either side can stop it, and the vested part is paid (liquid payments (streams)).
  • Schedule a series of transfers, with an interval, a number of payments and an optional cliff, either locked up front or taken at each payment (scheduled transfers).
  • Pay through an escrow that an approver releases or rejects before a deadline; a payee can also publish an escrow request for the payer to fund (escrow).
  • Spend from a multisignature account once enough of its participants have signed (multisignature).
  • Lock ZBC on a trigger that pays at a future block height, or when the registered nodes attest an event (triggers and attestations).

Every transaction can also carry a short message, plain or encrypted to the recipient (signed and encrypted messages).

Tokens

Issue your own token, with its own symbol, name, supply and optional ZBC backing, then transfer, mint, burn or keep it alive (issuing a token, minting and burning tokens, token upkeep (persistence)). A fixed set of 14 genesis coins exists beside user tokens, and four of them, ZBTC, ZETH, ZUSDC and ZUSDT, are bridge coins (tokens and markets, bridge and wrapped coins).

Markets

  • Order-book markets: open a market for a pair of tokens, then place and cancel limit or market orders (markets and orders).
  • Swap offers: offer one asset for another, to anyone or to a named counterparty; one taker accepts the whole offer at once (swap offers).

Data and files

  • Datasets: key-value records written on an account, paid by rent (datasets).
  • Small files on the chain, up to about 64 KiB each (files on the chain (DFS)).
  • Larger files in the decentralised storage: the file's manifest goes on chain, and its 1 MiB pieces are held by nodes chosen by rendezvous hashing, which prove every epoch that they still keep them. Rent comes from a deposit, and the file is pruned when the deposit cannot cover a period (decentralised storage pool).
  • Keep a transaction longer than nodes keep ordinary history, by paying for its longevity (paying to keep data (longevity)).

Apps and games

Play board games such as chess, checkers or connect-4 against other players, or solo bets such as dice, roulette or a coin flip against the apps pool. Every move is a transaction, the game's state is kept on chain, and the protocol pays out (apps on ZooBC).

Accounts and policies

  • Account groups: one account behind up to 100 addresses, with spending permissions per member (account groups).
  • Split policy: share incoming payments among up to 10 recipients automatically.
  • Transact policy: refuse whole categories of transactions to and from an account (split and transact policies).

Running the network

Register a node and join the node registry and its seats, or register a gateway, an archival node or a relay (gateways, explorer and archival nodes, relays). Registered nodes also vote on prices (price votes), attest events, prove storage and report double-signing (double-signing (equivocation)), and a release authority registers software releases (releases and updates).

Built-in features: payments, tokens, data and files (paid with rent), markets with order books. There is no lending pool.
Built-in features: payments, tokens, data and files (paid with rent), markets with order books. There is no lending pool.

What is not there

No transaction type lends ZBC or sets an interest rate, and there are no automated market-maker pools. There is no virtual machine either, so nobody can deploy a new kind of contract: a feature that is not on this list arrives only with a protocol release.

Everything here can be combined in an application that talks to a node's public API, even one built as a single web page (building an app as one HTML page, project ideas).

See also