Un seul outil en ligne de commande qui construit, signe et soumet toutes les transactions ZooBC : 50 commandes, du simple send-zbc au multisig, à l'enregistrement de nœuds, à la plateforme d'échange, au stockage sur la chaîne et à la gouvernance. Conçu pour les machines par défaut (JSON en entrée, JSON en sortie), avec un mode interactif pour les humains.
01L'obtenir
Téléchargez la version Linux x86_64, décompressez-la et lancez-la. Aucune installation, aucune dépendance.
⬇ Télécharger 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
D'autres plateformes arrivent ; pour l'instant, la version disponible est Ubuntu / Linux x86_64.
02Trois façons de l'exécuter
Par défaut : JSON en entrée, JSON en sortie
Passez les paramètres comme arguments positionnels ; vous recevez un résultat JSON. C'est le mode qu'appellent les autres applications et scripts. Le premier paramètre est toujours la clé privée de l'expéditeur.
zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API → {"transaction_hash":"a5f1…","amount":100000000, …}
Interactif, --verbose
Vous demande chaque champ un par un, puis affiche un résultat lisible. Idéal pour les opérations ponctuelles.
zoobc-cli issue-token --verbose --api $API Sender private key: … · Symbol: … · Name: … · Decimals: …
JSON redirigé, --json-input
Lit les paramètres sous forme d'objet JSON sur stdin ; les clés sont exactement celles que liste help <cmd>.
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zoobc-cli send-zbc --json-input --api $API
03Découvrir quoi envoyer
Deux commandes intégrées vous disent tout, inutile de lire le code source.
zoobc-cli list # every command, grouped by category zoobc-cli help multisig # the JSON fields for ONE command
help <cmd> affiche la clé de chaque champ, s'il est obligatoire, sa valeur par défaut et un exemple d'objet JSON prêt à modifier :
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":"…", …}
04Options et conventions courantes
| --api <url> | Point de terminaison du nœud ou de la passerelle. Par défaut : http://localhost:8080. Indiquez https://zoobc.network pour le TestNet public. Il s'agit du réseau de test en service, pas du MainNet. |
| --fee <n> | Remplace les frais de transaction (en ZBC atomiques). Omettez cette option pour utiliser la valeur par défaut / le minimum calculé selon la taille. |
| --verbose | Saisie interactive + sortie lisible (voir le mode 2). |
| --json-input | Lit les paramètres sous forme d'objet JSON sur stdin (mode 3). |
Tous les montants et les prix sont des entiers atomiques (ZBC ×1e8 ; montants de jetons ×10^décimales ; prix des ordres ×1e8). Les adresses peuvent être une chaîne ZBC_… complète ou en hexadécimal. L'outil ne plante jamais sur une entrée invalide : il renvoie un objet d'erreur JSON (ou une erreur textuelle en mode --verbose).
05Exemples commentés
# 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
06Les 50 commandes
La structure exacte, octet par octet, du corps de chaque transaction figure dans le Manuel des transactions. Lancez zoobc-cli help <cmd> pour obtenir les champs d'une commande.
| send-zbc | Envoyer des ZBC à une adresse |
| liquid-payment | Verser des ZBC en continu dans le temps (déblocage progressif) |
| liquid-payment-stop | Arrêter un paiement liquide (règlement au prorata) |
| transfer-token | Transférer un jeton coloré détenu |
| issue-token | Émettre un jeton coloré |
| mint-token | Frapper de nouvelles unités d'un jeton frappable |
| burn-token | Brûler un jeton (récupérer sa contrepartie s'il est remboursable) |
| finance-token | Réapprovisionner le financement de survie d'un jeton |
| market-create | Ouvrir un marché à carnet d'ordres (base,cotation) |
| order-place | Passer un ordre à cours limité / au marché |
| order-cancel | Annuler un ordre en attente |
| swap-create | Créer une offre d'échange atomique |
| swap-accept | Accepter (exécuter) une offre d'échange |
| swap-cancel | Annuler une offre d'échange ouverte |
| app-create | Créer une application (2 joueurs ou solo contre la banque) |
| app-join | Rejoindre une application ouverte |
| app-move | Soumettre un coup |
| app-resign | Abandonner une application |
| app-claim | Réclamer une application expirée |
| app-settle | Régler une application à canal d'état (rejeu des bons signés) |
| store-file | Ancrer un fichier de stockage décentralisé (manifeste + loyer) |
| add-prepaid-storage | Financer le loyer de stockage d'un compte |
| setup-dataset | Définir une propriété→valeur du jeu de données d'un compte |
| remove-dataset | Supprimer une propriété du jeu de données d'un compte |
| delete-dataset | Supprimer un objet de jeu de données (rembourse son dépôt) |
| set-dataset-policy | Définir la politique de gestion d'un objet de jeu de données |
| transfer-dataset | Proposer le transfert d'un objet de jeu de données |
| accept-dataset | Accepter un transfert de jeu de données en attente |
| multisig | SendZBC multisig N-sur-M (tx interne + signatures) |
| escrow-request | Créer une demande de séquestre à l'initiative du destinataire |
| approve-escrow | Approuver / rejeter / faire expirer un séquestre |
| scheduled-transfer | Transferts à déblocage progressif / récurrents sur minuterie |
| cancel-schedule | Annuler un transfert planifié en attente |
| reassign-schedule | Rediriger une planification vers un nouveau destinataire |
| create-trigger | Planifier un SendZBC futur (keeper/oracle) |
| cancel-trigger | Annuler un déclencheur en attente (remboursement) |
| attest-event | Attester un événement externe (nœud oracle) |
| fee-vote-commit | Phase d'engagement du vote sur le barème des frais |
| fee-vote-reveal | Phase de révélation du vote sur le barème des frais |
| register-node | Enregistrer un nœud validateur (le propriétaire signe ; construit ProofOfOwnership) |
| update-node | Mettre à jour le solde bloqué / l'enregistrement d'un nœud |
| remove-node | Retirer un nœud de l'ensemble des validateurs |
| claim-node | Récupérer un enregistrement précédemment retiré |
| register-gateway | Enregistrer une passerelle (clé + domaine + url, bloque la mise) |
| unregister-gateway | Retirer une passerelle ; rembourse la mise |
| gateway-heartbeat | Prouver qu'une passerelle est active, signé par la clé de la passerelle (GATEWAY), mais n'importe quel expéditeur peut le relayer |
| register-release | Publier une version binaire signée |
| revoke-release | Révoquer une version publiée |
| release-authority-propose | Proposer une nouvelle autorité de publication |
| release-authority-accept | Accepter une passation de l'autorité de publication |