---
title: "Build on ZooBC: open blockchain API and CLI tools"
description: "Build on the ZooBC blockchain testnet today: 82 public REST endpoints with no key, 76 CLI tools with JSON in and out, and a runnable Python example."
url: https://zoobc.foundation/build/
language: en
publisher: ZooBC Foundation
retrieved: 2026-10-19
---

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.

[Get test coins →](https://zoobc.network/faucet/) [agents.md](https://zoobc.network/agents.md) [llms.txt](https://zoobc.network/llms.txt) [example.py](https://zoobc.network/dl/zoobc-agent-example.py)

Chain height

[121,796](https://zoobc.network/explorer)

updated 2026-10-19 05:41 UTC

Nodes

[13](https://zoobc.network/explorer#/nodes)

updated 2026-10-19 05:41 UTC

On-chain releases

[26](https://zoobc.network/verify)

updated 2026-10-19 05:39 UTC

User-issued tokens

[17](https://zoobc.network/api/v1/tokens)

updated 2026-10-19 05:41 UTC

## 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](https://zoobc.network/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](https://zoobc.network/agents.md).

### 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](https://zoobc.network/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.

Working surfaces

- [zoobc.network](https://zoobc.network) — the testnet
- [Explorer](https://zoobc.network/explorer)
- [Wallet](https://zoobc.network/wallet)
- [Faucet](https://zoobc.network/faucet/)
- [/verify](https://zoobc.network/verify)
- [Public REST API](https://zoobc.network/api-docs)
- [agents.md](https://zoobc.network/agents.md)
- [llms.txt](https://zoobc.network/llms.txt)
- [example.py](https://zoobc.network/dl/zoobc-agent-example.py)

Numbers you can quote today

- 76 CLI tools per release
- 50 commands in `zbc-cli` alone
- 82 public REST endpoints
- CORS wide open (`*`)
- ~15 second blocks
- 1 ZBC = 100,000,000 atomic

Fund your work

Building something material? The Foundation funds public-good work across tooling, wallets, education, security, agents, and integrations.

[Apply for a grant →](https://zoobc.foundation/grants/apply.php)

Ideas and projects

Not sure what to build? The community votes on [ideas](https://zoobc.foundation/ideas/). Built something already? [Show it](https://zoobc.foundation/projects/): a page, screenshots, a download, and a ZBC address people can thank you at.

---

Source: https://zoobc.foundation/build/  
All pages: https://zoobc.foundation/llms.txt  
Full text: https://zoobc.foundation/llms-full.txt
