Una herramienta de línea de comandos que construye, firma y envía todas las transacciones de ZooBC: 50 comandos, desde un simple send-zbc hasta multifirma, registro de nodos, el exchange, el almacenamiento en la cadena y la gobernanza. Pensada para máquinas por defecto (JSON de entrada, JSON de salida), con un modo interactivo para personas.
01Obtenerla
Descarga la compilación para Linux x86_64, descomprímela y ejecútala. Sin instalación ni dependencias.
⬇ Descargar 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
Pronto habrá otras plataformas; por ahora la compilación es para Ubuntu / Linux x86_64.
02Tres formas de ejecutarla
Predeterminado: JSON de entrada, JSON de salida
Pasa los parámetros como argumentos posicionales y recibe un resultado JSON. Este es el modo que usan otras aplicaciones y scripts. El primer parámetro es siempre la clave privada del remitente.
zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API → {"transaction_hash":"a5f1…","amount":100000000, …}
Interactivo, --verbose
Te pide cada campo de uno en uno y luego muestra un resultado legible. Ideal para operaciones puntuales.
zoobc-cli issue-token --verbose --api $API Sender private key: … · Symbol: … · Name: … · Decimals: …
JSON por tubería, --json-input
Lee los parámetros como un objeto JSON desde stdin; las claves son exactamente las que muestra help <cmd>.
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zoobc-cli send-zbc --json-input --api $API
03Descubre qué enviar
Dos comandos integrados te lo dicen todo, sin necesidad de leer el código fuente.
zoobc-cli list # every command, grouped by category zoobc-cli help multisig # the JSON fields for ONE command
help <cmd> muestra la clave de cada campo, si es obligatorio, su valor predeterminado y un objeto JSON de ejemplo listo para editar:
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":"…", …}
04Opciones comunes y convenciones
| --api <url> | Endpoint del nodo o de la pasarela. Predeterminado: http://localhost:8080. Apúntalo a https://zoobc.network para usar la TestNet pública. Esa es la red de pruebas en vivo, no la MainNet. |
| --fee <n> | Sustituye la comisión de transacción (ZBC atómicos). Omítela para usar el mínimo predeterminado o calculado según el tamaño. |
| --verbose | Preguntas interactivas + salida legible (ver modo 2). |
| --json-input | Lee los parámetros como un objeto JSON desde stdin (modo 3). |
Todas las cantidades y precios son enteros atómicos (ZBC ×1e8; cantidades de tokens ×10^decimales; precios de órdenes ×1e8). Las direcciones pueden ser una cadena ZBC_… completa o hexadecimal. La herramienta nunca falla ante una entrada incorrecta: devuelve un objeto de error JSON (o un error de texto en --verbose).
05Ejemplos prácticos
# 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
06Los 50 comandos
Las disposiciones de bytes exactas del cuerpo de cada transacción están en el Manual de transacciones. Ejecuta zoobc-cli help <cmd> para ver los campos de un comando.
| send-zbc | Envía ZBC a una dirección |
| liquid-payment | Transfiere ZBC de forma continua en el tiempo (liberación gradual) |
| liquid-payment-stop | Detiene un pago líquido (liquida a prorrata) |
| transfer-token | Transfiere un token coloreado que posees |
| issue-token | Emite un token coloreado |
| mint-token | Acuña más unidades de un token acuñable |
| burn-token | Quema un token (canjea su respaldo si es canjeable) |
| finance-token | Recarga la financiación de supervivencia de un token |
| market-create | Abre un mercado con libro de órdenes (base,cotización) |
| order-place | Coloca una orden limitada/de mercado |
| order-cancel | Cancela una orden pendiente |
| swap-create | Crea una oferta de intercambio atómico |
| swap-accept | Acepta (ejecuta) una oferta de intercambio |
| swap-cancel | Cancela una oferta de intercambio abierta |
| app-create | Crea una app (2 jugadores o individual contra la casa) |
| app-join | Se une a una app abierta |
| app-move | Envía una jugada |
| app-resign | Abandona una app |
| app-claim | Reclama una app con el plazo vencido |
| app-settle | Liquida una app de canal de estado (reproduce los comprobantes) |
| store-file | Ancla un archivo de almacenamiento descentralizado (manifiesto + alquiler) |
| add-prepaid-storage | Financia el alquiler de almacenamiento de una cuenta |
| setup-dataset | Establece una propiedad→valor del conjunto de datos de una cuenta |
| remove-dataset | Elimina una propiedad del conjunto de datos de una cuenta |
| delete-dataset | Borra un objeto de conjunto de datos (reembolsa su depósito) |
| set-dataset-policy | Establece la política de gestión de un objeto de conjunto de datos |
| transfer-dataset | Propone la transferencia de un objeto de conjunto de datos |
| accept-dataset | Acepta una transferencia de conjunto de datos pendiente |
| multisig | SendZBC multisig N de M (tx interna + firmas) |
| escrow-request | Crea una solicitud de depósito en garantía iniciada por el destinatario |
| approve-escrow | Aprueba / rechaza / hace caducar un depósito en garantía |
| scheduled-transfer | Transferencias con liberación gradual / recurrentes programadas |
| cancel-schedule | Cancela una transferencia programada pendiente |
| reassign-schedule | Redirige una programación a un nuevo destinatario |
| create-trigger | Programa un SendZBC futuro (keeper/oráculo) |
| cancel-trigger | Cancela un disparador pendiente (reembolso) |
| attest-event | Certifica un evento externo (nodo oráculo) |
| fee-vote-commit | Fase de compromiso de la votación de la escala de comisiones |
| fee-vote-reveal | Fase de revelación de la votación de la escala de comisiones |
| register-node | Registra un nodo validador (firma el propietario; genera ProofOfOwnership) |
| update-node | Actualiza el saldo bloqueado / el registro de un nodo |
| remove-node | Retira un nodo del conjunto de validadores |
| claim-node | Reclama un registro retirado previamente |
| register-gateway | Registra una pasarela (clave + dominio + url; bloquea stake) |
| unregister-gateway | Retira una pasarela; reembolsa el stake |
| gateway-heartbeat | Demuestra que una pasarela está activa; lo firma la clave de la PASARELA, pero cualquier remitente puede retransmitirlo |
| register-release | Publica una versión binaria firmada |
| revoke-release | Revoca una versión publicada |
| release-authority-propose | Propone una nueva autoridad de publicación |
| release-authority-accept | Acepta un traspaso de la autoridad de publicación |