Build
Testnet is live. No key, no signup, no waitlist.
ZooBC's testnet is running at zoobc.network. The public REST API is 82 endpoints with Access-Control-Allow-Origin: *. The CLI is 76 tools, JSON in and JSON out. A working example takes you from a fresh key to a confirmed transaction in about 200 lines of Python standard library.
Quickstart
1. Which chain am I on?
Do this first. Addresses are per-chain — one funded on testnet does not exist on any other ZooBC network.
curl -s https://zoobc.network/api/v1/blockchain/status
height is the tip; confirmed_height trails it. Anything above confirmed_height is provisional. Mainnet is not launched yet — when it is, it will serve its own copy of the docs at its own domain.
2. Units
Atomic integers everywhere. 1 ZBC = 100,000,000 atomic. Every amount and fee in a transaction is an atomic integer. The one exception is the faucet, which takes decimal ZBC.
3. Generate a key, offline
zbc-account-gen ships with every release, needs no network, and prints JSON. Same key produces addresses on several chains; ZooBC verifies each with that chain's own signature scheme.
zbc-account-gen
4. Get test coins
curl -s -X POST https://zoobc.network/faucet/claim \
-H 'Content-Type: application/json' \
-d '{"address":"ZBC_...","amount":5}'
The payout halves as you take. Read /faucet/stats before assuming the faucet is broken — the ladder counts what you've drawn, not how many times you asked.
5. Send value
Two ways. Both sign locally; the chain never sees a private key.
CLI:
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zbc-cli send-zbc --json-input
HTTP: lay out the bytes, sign a chain-bound digest of them, POST hex. The digest is SHA3-256("ZBC-TX" ‖ genesis_hash ‖ bytes), so a signature is valid on exactly one network. Read genesis_hash from /api/v1/node/info. The exact byte layout, signable-vs-transport shape, and the JSON body of the send transaction are documented in agents.md §5.
6. A working reference in one file
curl -sO https://zoobc.network/dl/zoobc-agent-example.py python3 zoobc-agent-example.py --api https://zoobc.network
Standard library only, no dependencies, ~200 lines. It runs the entire loop — generate a key, claim from the faucet, wait for it to be spendable, ask what fee is required, build the bytes, sign, post, and confirm.
Verify a download
Every published binary has its SHA-256 anchored on the chain. Drag any downloaded file into /verify and it checks the hash against consensus. This is the mechanism to prefer over trusting a download page — including this one.
Source code
The core node software is not yet public. Per the Foundation's stated position, core node source will open within six months of mainnet going live, or sooner if adoption warrants earlier opening. Several utilities and CLI tools will open before mainnet. Until then, use the on-chain release registry to verify that the binaries you're running match what was published by consensus.
Agents on ZooBC
ZooBC ships on-chain primitives suited to autonomous agents transacting with each other:
- Scheduled and vesting transfers — allowances that release over time.
- Escrow with automatic timeout — funds return if the counterparty doesn't act.
- N-of-M multisig — a spending veto that no single party can override.
- Per-account datasets — small structured state agents can read and write.
An agent can be given a spendable allowance with a ceiling enforced by consensus, and every action it takes leaves a permanent audit trail a human can inspect afterwards. That is the case for ZooBC as substrate for AI agents transacting — spending is bounded by the chain, not by trust in the agent runtime.