ZooBC CLI Manual

zoobc-cli — one binary, every transaction

One command-line tool that builds, signs, and submits every ZooBC transaction — 50 commands from a plain send-zbc to multisig, node registration, the exchange, on-chain storage, and governance. Machine-friendly by default (JSON in, JSON out) with an interactive mode for humans.

01Get it

Download the Linux x86_64 build, unpack, and run. No install, no dependencies.

⬇ Download zoobc-cli (Linux x86_64)

# unpack and put it on your PATH
tar xzf zoobc-cli-linux-x86_64.tar.gz
sudo mv zoobc-cli /usr/local/bin/

# point it at any node or gateway (default: http://localhost:8080)
zoobc-cli list --api https://node.proofofparticipation.network

Other platforms are coming; for now the build is Ubuntu / Linux x86_64.

02Three ways to run it

Default — JSON in, JSON out

Pass params as positional arguments; get a JSON result back. This is the mode other apps and scripts call. The first parameter is always the sender private key.

zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API
→ {"transaction_hash":"a5f1…","amount":100000000, …}

Interactive — --verbose

Prompts you for each field one at a time, then prints a human-readable result. Great for one-offs.

zoobc-cli issue-token --verbose --api $API
Sender private key: … · Symbol: … · Name: … · Decimals: …

Piped JSON — --json-input

Read the parameters as a JSON object on stdin — the keys are exactly what help <cmd> lists.

echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
  | zoobc-cli send-zbc --json-input --api $API

03Discover what to send

Two built-ins tell you everything — no need to read source.

zoobc-cli list              # every command, grouped by category
zoobc-cli help multisig     # the JSON fields for ONE command

help <cmd> prints each field's key, whether it's required, its default, and a ready-to-edit sample JSON object:

multisig — N-of-M multisig SendZBC (inner tx + participant signatures)  (tx type 5)
  sender_privkey    (required) Sender private key (64 hex)
  participants      (required) comma-separated participant ZBC addresses
  min_signatures    (required) required signatures (N of M)
  nonce             (optional) multisig account nonce  [default: 0]
  signer_privkeys   (required) participant keys that sign now
  recipient         (required) inner SendZBC recipient address
  amount            (required) inner SendZBC amount (atomic units)
  inner_fee         (optional) inner SendZBC fee (atomic)  [default: 10000000]
Sample: {"sender_privkey":"…","participants":"…", …}

04Common flags & conventions

--api <url>Node or gateway endpoint. Default http://localhost:8080. Point it at https://node.proofofparticipation.network for the live network.
--fee <n>Override the transaction fee (atomic ZBC). Omit to use the default / size-aware minimum.
--verboseInteractive prompts + human-readable output (see mode 2).
--json-inputRead params as a JSON object on stdin (mode 3).

All amounts and prices are atomic integers (ZBC ×1e8; token amounts ×10^decimals; order prices ×1e8). Addresses may be a full ZBC_… string or hex. The tool never crashes on bad input — it returns a JSON error object (or a text error in --verbose).

05Worked examples

# transfer a colored token
zoobc-cli transfer-token $KEY ZBC_6FINNB6J_… <token_id> 500 --api $API

# register a validator node (owner signs; node key supplies the pubkey; PoOwnership is built for you)
zoobc-cli register-node $OWNER_KEY $NODE_KEY 100000000000 --api $API

# open an N-of-M multisig and sign with your key (others co-sign later)
zoobc-cli multisig $KEY "ZBC_A…,ZBC_B…,ZBC_C…" 2 0 "$KEY" ZBC_A… 100000000 5000000 --api $API

# schedule a vesting/recurring payment: 1 ZBC per fire, 12 fires, monthly
zoobc-cli scheduled-transfer $KEY ZBC_… 0 100000000 2592000 12 0 0 0 0 --api $API

06All 50 commands

Byte-exact body layouts for every transaction are in the Transaction Manual. Run zoobc-cli help <cmd> for a command's fields.

Value & tokens
send-zbcSend ZBC to an address
liquid-paymentStream ZBC over time (vesting)
liquid-payment-stopStop a liquid payment (settle pro-rata)
transfer-tokenTransfer a held colored token
issue-tokenIssue a colored-coin token
mint-tokenMint more of a mintable token
burn-tokenBurn a token (redeem backing if redeemable)
finance-tokenTop up a token's survival financing
Exchange & marketplace
market-createOpen a (base,quote) order-book market
order-placePlace a limit/market order
order-cancelCancel a resting order
swap-createCreate an atomic swap offer
swap-acceptAccept (fill) a swap offer
swap-cancelCancel an open swap offer
Apps
app-createCreate an app (2-player or solo-vs-house)
app-joinJoin an open app
app-moveSubmit a move
app-resignResign an app
app-claimClaim a timed-out app
app-settleSettle a state-channel app (replay vouchers)
Storage & data
store-fileAnchor a decentralized-storage file (manifest + rent)
add-prepaid-storageFund an account's storage rent
setup-datasetSet an account-dataset property→value
remove-datasetRemove an account-dataset property
delete-datasetDelete a dataset object (refunds its deposit)
set-dataset-policySet a dataset object's manage policy
transfer-datasetPropose transfer of a dataset object
accept-datasetAccept a pending dataset transfer
Account: escrow · scheduler · triggers · multisig · voting
multisigN-of-M multisig SendZBC (inner tx + signatures)
escrow-requestCreate a recipient-initiated escrow request
approve-escrowApprove / reject / expire an escrow
scheduled-transferVesting / recurring transfers on a timer
cancel-scheduleCancel a pending scheduled transfer
reassign-scheduleRedirect a schedule to a new recipient
create-triggerSchedule a future SendZBC (keeper/oracle)
cancel-triggerCancel a pending trigger (refund)
attest-eventAttest an external event (oracle node)
fee-vote-commitCommit phase of the fee-scale vote
fee-vote-revealReveal phase of the fee-scale vote
Node operator
register-nodeRegister a validator node (owner signs; builds ProofOfOwnership)
update-nodeUpdate a node's locked balance / registration
remove-nodeRemove a node from the validator set
claim-nodeClaim a previously-removed registration
Gateway operator
register-gatewayRegister a gateway (key + domain + url, locks stake)
unregister-gatewayWithdraw a gateway; refund the stake
gateway-heartbeatProve a gateway is alive — signed by the GATEWAY key, but any sender may relay it
Governance (release authority)
register-releasePublish a signed binary release
revoke-releaseRevoke a published release
release-authority-proposePropose a new release authority
release-authority-acceptAccept a release-authority handover
Part of the ZooBC Manuals. See the Transaction Manual for byte layouts · open the wallet or explorer · back to the gateway home.