모든 ZooBC 트랜잭션을 생성하고, 서명하고, 제출하는 단 하나의 명령줄 도구입니다. 단순한 send-zbc부터 멀티시그, 노드 등록, 거래소, 온체인 스토리지, 거버넌스까지 50개 명령을 제공합니다. 기본적으로 기계 친화적(JSON 입력, JSON 출력)이며, 사람을 위한 대화형 모드도 있습니다.
01다운로드
Linux x86_64 빌드를 다운로드해 압축을 풀고 실행하세요. 설치도, 의존성도 필요 없습니다.
⬇ 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
다른 플랫폼도 준비 중입니다. 현재 빌드는 Ubuntu / Linux x86_64용입니다.
02세 가지 실행 방법
기본 모드: JSON 입력, JSON 출력
매개변수를 위치 인수로 전달하면 JSON 결과를 돌려받습니다. 다른 앱과 스크립트가 호출하는 모드입니다. 첫 번째 매개변수는 항상 보내는 사람의 개인 키입니다.
zoobc-cli send-zbc <privkey> ZBC_4HFG43GR_… 100000000 --api $API → {"transaction_hash":"a5f1…","amount":100000000, …}
대화형 모드: --verbose
각 필드를 하나씩 묻고, 사람이 읽기 쉬운 결과를 출력합니다. 일회성 작업에 적합합니다.
zoobc-cli issue-token --verbose --api $API Sender private key: … · Symbol: … · Name: … · Decimals: …
파이프 JSON: --json-input
매개변수를 stdin의 JSON 객체로 읽습니다. 키는 help <cmd>가 보여 주는 것과 정확히 같습니다.
echo '{"sender_privkey":"…","recipient":"ZBC_…","amount":"100000000"}' \
| zoobc-cli send-zbc --json-input --api $API
03보낼 내용 알아보기
두 가지 내장 명령이 모든 것을 알려 주므로 소스를 읽을 필요가 없습니다.
zoobc-cli list # every command, grouped by category zoobc-cli help multisig # the JSON fields for ONE command
help <cmd>는 각 필드의 키, 필수 여부, 기본값, 그리고 바로 편집해 쓸 수 있는 샘플 JSON 객체를 출력합니다:
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":"…", …}
04공통 플래그와 규칙
| --api <url> | 노드 또는 게이트웨이 엔드포인트. 기본값은 http://localhost:8080입니다. 공개 TestNet을 쓰려면 https://zoobc.network로 지정하세요. 이는 MainNet이 아니라 실제로 운영 중인 테스트 네트워크입니다. |
| --fee <n> | 트랜잭션 수수료(아토믹 단위 ZBC)를 직접 지정합니다. 생략하면 기본값 또는 크기 기반 최소 수수료를 사용합니다. |
| --verbose | 대화형 입력 + 사람이 읽기 쉬운 출력(모드 2 참고). |
| --json-input | 매개변수를 stdin의 JSON 객체로 읽습니다(모드 3). |
모든 금액과 가격은 아토믹 정수입니다(ZBC ×1e8, 토큰 금액 ×10^decimals, 주문 가격 ×1e8). 주소는 전체 ZBC_… 문자열이나 hex로 지정할 수 있습니다. 이 도구는 잘못된 입력에도 중단되지 않고 JSON 오류 객체를 반환합니다(--verbose 모드에서는 텍스트 오류).
05실전 예제
# 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
06전체 50개 명령
모든 트랜잭션의 바이트 단위 바디 레이아웃은 트랜잭션 매뉴얼에 있습니다. 명령의 필드를 보려면 zoobc-cli help <cmd>를 실행하세요.
| send-zbc | 주소로 ZBC 보내기 |
| liquid-payment | 시간에 걸쳐 ZBC 스트리밍 지급(베스팅) |
| liquid-payment-stop | 리퀴드 페이먼트 중지(비례 정산) |
| transfer-token | 보유한 컬러드 토큰 전송 |
| issue-token | 컬러드 코인 토큰 발행 |
| mint-token | 추가 발행 가능한 토큰 추가 발행 |
| burn-token | 토큰 소각(상환 가능하면 담보 상환) |
| finance-token | 토큰의 존속 자금 충전 |
| market-create | (base,quote) 호가창 마켓 개설 |
| order-place | 지정가/시장가 주문 넣기 |
| order-cancel | 대기 중인 주문 취소 |
| swap-create | 아토믹 스왑 제안 생성 |
| swap-accept | 스왑 제안 수락(체결) |
| swap-cancel | 열려 있는 스왑 제안 취소 |
| app-create | 앱 생성(2인용 또는 하우스 상대 솔로) |
| app-join | 공개 앱 참여 |
| app-move | 수 제출 |
| app-resign | 앱 기권 |
| app-claim | 시간 초과된 앱 청구 |
| app-settle | 상태 채널 앱 정산(바우처 재생) |
| store-file | 탈중앙화 스토리지 파일 앵커링(매니페스트 + 임대료) |
| add-prepaid-storage | 계정의 스토리지 임대료 충전 |
| setup-dataset | 계정 데이터셋 속성→값 설정 |
| remove-dataset | 계정 데이터셋 속성 제거 |
| delete-dataset | 데이터셋 객체 삭제(보증금 환불) |
| set-dataset-policy | 데이터셋 객체의 관리 정책 설정 |
| transfer-dataset | 데이터셋 객체 이전 제안 |
| accept-dataset | 대기 중인 데이터셋 이전 수락 |
| multisig | N-of-M 멀티시그 SendZBC(내부 tx + 서명) |
| escrow-request | 수신자가 시작하는 에스크로 요청 생성 |
| approve-escrow | 에스크로 승인 / 거부 / 만료 |
| scheduled-transfer | 타이머 기반 베스팅 / 반복 송금 |
| cancel-schedule | 대기 중인 예약 송금 취소 |
| reassign-schedule | 예약 송금을 새 수신자로 변경 |
| create-trigger | 향후 SendZBC 예약(키퍼/오라클) |
| cancel-trigger | 대기 중인 트리거 취소(환불) |
| attest-event | 외부 이벤트 증명(오라클 노드) |
| fee-vote-commit | 수수료 배율 투표의 커밋 단계 |
| fee-vote-reveal | 수수료 배율 투표의 공개 단계 |
| register-node | 검증자 노드 등록(소유자가 서명, ProofOfOwnership 생성) |
| update-node | 노드의 잠긴 잔액 / 등록 정보 업데이트 |
| remove-node | 검증자 집합에서 노드 제거 |
| claim-node | 이전에 제거된 등록 되찾기 |
| register-gateway | 게이트웨이 등록(키 + 도메인 + url, 스테이크 잠금) |
| unregister-gateway | 게이트웨이 철회, 스테이크 환불 |
| gateway-heartbeat | 게이트웨이 생존 증명(GATEWAY 키로 서명하지만 누구든 대신 전달 가능) |
| register-release | 서명된 바이너리 릴리스 게시 |
| revoke-release | 게시된 릴리스 철회 |
| release-authority-propose | 새 릴리스 권한자 제안 |
| release-authority-accept | 릴리스 권한자 인계 수락 |