Un unico strumento da riga di comando che costruisce, firma e invia ogni transazione ZooBC: 50 comandi, da un semplice send-zbc a multisig, registrazione dei nodi, exchange, archiviazione on-chain e governance. Pensato per le macchine per impostazione predefinita (JSON in ingresso, JSON in uscita), con una modalità interattiva per gli esseri umani.
01Scaricala
Scarica la build per Linux x86_64, decomprimila ed eseguila. Nessuna installazione, nessuna dipendenza.
⬇ Scarica 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) # https://zoobc.network is the public TestNet gateway, not MainNet zoobc-cli list --api https://zoobc.network
Altre piattaforme sono in arrivo; per ora la build è per Ubuntu / Linux x86_64.
02Tre modi per eseguirla
Predefinita: JSON in ingresso, JSON in uscita
Passa i parametri come argomenti posizionali e ricevi un risultato JSON. È la modalità usata da altre app e script. Il primo parametro è sempre la chiave privata del mittente.
zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API → {"transaction_hash":"a5f1…","amount":100000000, …}
Interattiva, --verbose
Ti chiede ogni campo uno alla volta, poi stampa un risultato leggibile. Ideale per operazioni occasionali.
zoobc-cli issue-token --verbose --api $API Sender private key: … · Symbol: … · Name: … · Decimals: …
JSON via pipe, --json-input
Legge i parametri come oggetto JSON da stdin; le chiavi sono esattamente quelle elencate da help <cmd>.
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zoobc-cli send-zbc --json-input --api $API
03Scopri cosa inviare
Due comandi integrati ti dicono tutto, senza bisogno di leggere il sorgente.
zoobc-cli list # every command, grouped by category zoobc-cli help multisig # the JSON fields for ONE command
help <cmd> stampa la chiave di ogni campo, se è obbligatorio, il suo valore predefinito e un oggetto JSON di esempio pronto da modificare:
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":"…", …}
04Flag comuni e convenzioni
| --api <url> | Endpoint del nodo o del gateway. Predefinito: http://localhost:8080. Puntalo su https://zoobc.network per la TestNet pubblica. È la rete di test attiva, non la MainNet. |
| --fee <n> | Sovrascrive la commissione di transazione (ZBC in unità atomiche). Omettilo per usare il minimo predefinito, calcolato in base alla dimensione. |
| --verbose | Richieste interattive + output leggibile (vedi modalità 2). |
| --json-input | Legge i parametri come oggetto JSON da stdin (modalità 3). |
Tutti gli importi e i prezzi sono interi atomici (ZBC ×1e8; importi dei token ×10^decimali; prezzi degli ordini ×1e8). Gli indirizzi possono essere una stringa ZBC_… completa o in esadecimale. Lo strumento non va mai in crash con input errati: restituisce un oggetto di errore JSON (o un errore testuale in --verbose).
05Esempi pratici
# 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
06Tutti i 50 comandi
Le strutture del corpo di ogni transazione, esatte al byte, sono nel Manuale delle transazioni. Esegui zoobc-cli help <cmd> per vedere i campi di un comando.
| send-zbc | Invia ZBC a un indirizzo |
| liquid-payment | Eroga ZBC nel tempo in modo continuo (vesting) |
| liquid-payment-stop | Interrompe un pagamento liquido (regolazione pro rata) |
| transfer-token | Trasferisce un token colorato posseduto |
| issue-token | Emette un token colorato |
| mint-token | Conia altre unità di un token coniabile |
| burn-token | Brucia un token (riscatta la copertura se è riscattabile) |
| finance-token | Ricarica il finanziamento di sopravvivenza di un token |
| market-create | Apre un mercato con order book (base,quote) |
| order-place | Inserisce un ordine limite/a mercato |
| order-cancel | Annulla un ordine in sospeso nel book |
| swap-create | Crea un'offerta di swap atomico |
| swap-accept | Accetta (esegue) un'offerta di swap |
| swap-cancel | Annulla un'offerta di swap aperta |
| app-create | Crea un'app (2 giocatori o in solitario contro il banco) |
| app-join | Entra in un'app aperta |
| app-move | Invia una mossa |
| app-resign | Abbandona un'app |
| app-claim | Rivendica un'app scaduta |
| app-settle | Regola un'app a canale di stato (riesegue i voucher) |
| store-file | Ancora un file nell'archiviazione decentralizzata (manifest + affitto) |
| add-prepaid-storage | Finanzia l'affitto di archiviazione di un account |
| setup-dataset | Imposta una coppia proprietà→valore nel dataset di un account |
| remove-dataset | Rimuove una proprietà dal dataset di un account |
| delete-dataset | Elimina un oggetto dataset (ne rimborsa il deposito) |
| set-dataset-policy | Imposta la policy di gestione di un oggetto dataset |
| transfer-dataset | Propone il trasferimento di un oggetto dataset |
| accept-dataset | Accetta un trasferimento di dataset in sospeso |
| multisig | SendZBC multisig N-di-M (tx interna + firme) |
| escrow-request | Crea una richiesta di escrow avviata dal destinatario |
| approve-escrow | Approva / rifiuta / fa scadere un escrow |
| scheduled-transfer | Trasferimenti in vesting / ricorrenti a tempo |
| cancel-schedule | Annulla un trasferimento programmato in sospeso |
| reassign-schedule | Reindirizza una pianificazione a un nuovo destinatario |
| create-trigger | Programma un SendZBC futuro (keeper/oracolo) |
| cancel-trigger | Annulla un trigger in sospeso (rimborso) |
| attest-event | Attesta un evento esterno (nodo oracolo) |
| fee-vote-commit | Fase di commit del voto sulla scala delle commissioni |
| fee-vote-reveal | Fase di rivelazione del voto sulla scala delle commissioni |
| register-node | Registra un nodo validatore (firma il proprietario; costruisce ProofOfOwnership) |
| update-node | Aggiorna il saldo bloccato / la registrazione di un nodo |
| remove-node | Rimuove un nodo dall'insieme dei validatori |
| claim-node | Rivendica una registrazione rimossa in precedenza |
| register-gateway | Registra un gateway (chiave + dominio + url, blocca lo stake) |
| unregister-gateway | Ritira un gateway; rimborsa lo stake |
| gateway-heartbeat | Dimostra che un gateway è attivo; firmato dalla chiave del GATEWAY, ma qualsiasi mittente può inoltrarlo |
| register-release | Pubblica una release binaria firmata |
| revoke-release | Revoca una release pubblicata |
| release-authority-propose | Propone una nuova autorità di rilascio |
| release-authority-accept | Accetta il passaggio di consegne dell'autorità di rilascio |