{"id":41256637,"url":"https://github.com/0chain/zboxcli","last_synced_at":"2026-01-23T01:52:01.004Z","repository":{"id":37017627,"uuid":"191985258","full_name":"0chain/zboxcli","owner":"0chain","description":"A client CLI using GoSDK to interface the blockchain, storage platform, and blobbers (storage providers)","archived":false,"fork":false,"pushed_at":"2025-05-04T09:21:27.000Z","size":2188,"stargazers_count":28,"open_issues_count":28,"forks_count":23,"subscribers_count":16,"default_branch":"staging","last_synced_at":"2025-05-04T10:26:39.328Z","etag":null,"topics":["allocation","blobber","dstorage","storage-provider","zbox-command"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0chain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-06-14T17:56:07.000Z","updated_at":"2025-05-04T09:20:04.000Z","dependencies_parsed_at":"2023-10-04T07:31:37.032Z","dependency_job_id":"9488a1d4-47bf-41a3-bdd3-85b7ac65b677","html_url":"https://github.com/0chain/zboxcli","commit_stats":null,"previous_names":[],"tags_count":67,"template":false,"template_full_name":null,"purl":"pkg:github/0chain/zboxcli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2Fzboxcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2Fzboxcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2Fzboxcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2Fzboxcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0chain","download_url":"https://codeload.github.com/0chain/zboxcli/tar.gz/refs/heads/staging","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0chain%2Fzboxcli/sbom","scorecard":{"id":265,"data":{"date":"2025-08-11","repo":{"name":"github.com/0chain/zboxcli","commit":"c9240045d8dc74676b308c76c9ba931bd9b0e8f6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.1,"checks":[{"name":"Code-Review","score":2,"reason":"Found 3/12 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":0,"reason":"dangerous workflow patterns detected","details":["Warn: script injection with untrusted input ' github.head_ref ': .github/workflows/tests.yml:75","Warn: script injection with untrusted input ' github.head_ref ': .github/workflows/tests.yml:75"],"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:23","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:24","Warn: no topLevel permission defined: .github/workflows/automate-add-issue-in-project.yaml:1","Warn: no topLevel permission defined: .github/workflows/backup.yml:1","Warn: no topLevel permission defined: .github/workflows/build-zbox.yaml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/distribute-zboxcli-apt.yml:1","Warn: no topLevel permission defined: .github/workflows/distribute-zboxcli-choco.yml:1","Warn: no topLevel permission defined: .github/workflows/gosdk.yml:1","Warn: no topLevel permission defined: .github/workflows/release-zboxcli.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/system_tests.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Info: Possibly incomplete results: error parsing shell code: [ must follow a name: .github/workflows/tests.yml:75","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/automate-add-issue-in-project.yaml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/automate-add-issue-in-project.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/backup.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/backup.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/backup.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/backup.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:96: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:113: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:118: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-zbox.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/build-zbox.yaml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/codeql-analysis.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/codeql-analysis.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:52: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/codeql-analysis.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/codeql-analysis.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-apt.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-apt.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-apt.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-apt.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-apt.yml:126: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-apt.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-apt.yml:142: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-apt.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-apt.yml:178: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-apt.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-apt.yml:265: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-apt.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-apt.yml:270: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-apt.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-choco.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-choco.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/distribute-zboxcli-choco.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/distribute-zboxcli-choco.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gosdk.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/gosdk.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gosdk.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/gosdk.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/gosdk.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/gosdk.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:129: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:143: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:160: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:165: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release-zboxcli.yml:174: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release-zboxcli.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:124: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:140: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:157: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:162: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:189: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:200: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:206: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:216: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:233: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:238: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:270: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:276: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/release.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/system_tests.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/system_tests.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:113: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:131: update your workflow using https://app.stepsecurity.io/secureworkflow/0chain/zboxcli/tests.yml/staging?enable=pin","Warn: containerImage not pinned by hash: scripts/debian/Dockerfile.build:1","Warn: containerImage not pinned by hash: scripts/debian/Dockerfile.install_test:5","Warn: downloadThenRun not pinned by hash: scripts/debian/Dockerfile.install_test:15-16","Warn: pipCommand not pinned by hash: .github/workflows/backup.yml:29","Info:   0 out of  51 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  20 third-party GitHubAction dependencies pinned","Info:   0 out of   1 pipCommand dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.18.0 not signed: https://api.github.com/repos/0chain/zboxcli/releases/186559602","Warn: release artifact v1.17.0 not signed: https://api.github.com/repos/0chain/zboxcli/releases/174565868","Warn: release artifact v1.11.1 not signed: https://api.github.com/repos/0chain/zboxcli/releases/135185408","Warn: release artifact v1.18.0 does not have provenance: https://api.github.com/repos/0chain/zboxcli/releases/186559602","Warn: release artifact v1.17.0 does not have provenance: https://api.github.com/repos/0chain/zboxcli/releases/174565868","Warn: release artifact v1.11.1 does not have provenance: https://api.github.com/repos/0chain/zboxcli/releases/135185408"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":3,"reason":"7 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2024-2818 / GHSA-3jgf-r68h-xfqm","Warn: Project is vulnerable to: GO-2024-3189 / GHSA-27vh-h6mc-q6g8","Warn: Project is vulnerable to: GO-2023-2046 / GHSA-ppjg-v974-84cm","Warn: Project is vulnerable to: GO-2024-2819 / GHSA-4xc9-8hmq-j652","Warn: Project is vulnerable to: GHSA-v9jh-j8px-98vq","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-14T12:21:24.934Z","repository_id":37017627,"created_at":"2025-08-14T12:21:24.934Z","updated_at":"2025-08-14T12:21:24.934Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28677714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T01:00:35.747Z","status":"ssl_error","status_checked_at":"2026-01-23T01:00:19.529Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allocation","blobber","dstorage","storage-provider","zbox-command"],"created_at":"2026-01-23T01:52:00.285Z","updated_at":"2026-01-23T01:52:00.990Z","avatar_url":"https://github.com/0chain.png","language":"Go","readme":"# zbox - a CLI for Züs dStorage\n\nzbox is a command line interface (CLI) tool to understand the capabilities of Züs dStorage and prototype your app. The utility is built using Züs [GoSDK](https://github.com/0chain/gosdk). For more information on Züs Network and the system overview, refer to [docs.zus.network](https://docs.zus.network).\n\n![Storage](https://user-images.githubusercontent.com/65766301/120052450-0ab66700-c043-11eb-91ab-1f7aa69e133a.png)\n\n- [zbox - a CLI for Züs dStorage](#zbox---a-cli-for-züs-dstorage)\n  - [Getting Started](#getting-started)\n    - [1. Installation](#1-installation)\n    - [2. Run `zbox` commands](#2-run-zbox-commands)\n  - [Running zbox](#running-zbox)\n    - [Global Flags](#global-flags)\n  - [Commands](#commands)\n    - [Creating and Managing Allocations](#creating-and-managing-allocations)\n      - [Create new allocation](#create-new-allocation)\n        - [Free storage allocation](#free-storage-allocation)\n      - [Update allocation](#update-allocation)\n      - [Transfer allocation ownership](#transfer-allocation-ownership)\n      - [Forbid Allocation](#forbid-allocation)\n      - [Cancel allocation](#cancel-allocation)\n      - [Finalise allocation](#finalise-allocation)\n      - [List blobbers](#list-blobbers)\n      - [Detailed blobber information](#detailed-blobber-information)\n      - [List all files](#list-all-files)\n      - [List owner's allocations](#list-owners-allocations)\n      - [Update blobber settings](#update-blobber-settings)\n      - [Update Validator Settings](#update-validator-settings)\n      - [List All Validators](#list-all-validators)\n      - [Get Validator Configuration](#get-validator-configuration)\n      - [Shutdown Blobber](#shutdown-blobber)\n      - [Shutdown Validator](#shutdown-validator)\n      - [Kill Blobber](#kill-blobber)\n      - [Kill Validator](#kill-validator)\n    - [Uploading and Managing files](#uploading-and-managing-files)\n      - [Create Directory](#create-directory)\n      - [Upload](#upload)\n      - [Feed](#feed)\n      - [Download](#download)\n      - [Update](#update)\n      - [Delete](#delete)\n      - [Share](#share)\n        - [share-encrypted revoke](#share-encrypted-revoke)\n      - [List](#list)\n      - [Copy](#copy)\n      - [Move](#move)\n      - [Get wallet](#get-wallet)\n      - [Get](#get)\n      - [Get metadata](#get-metadata)\n      - [Rename](#rename)\n      - [Stats](#stats)\n      - [Repair](#repair)\n      - [Decrypt](#decrypt)\n      - [Sign data](#sign-data)\n        \n    - [Lock and Unlock Tokens](#lock-and-unlock-tokens)\n      - [Challenge pool information](#challenge-pool-information)\n      - [Create read pool](#create-read-pool)\n      - [Collect rewards](#collect-rewards)\n      - [Read pool info](#read-pool-info)\n      - [Lock tokens into read pool](#lock-tokens-into-read-pool)\n      - [Unlock tokens from read pool](#unlock-tokens-from-read-pool)\n      - [Storage SC configurations](#storage-sc-configurations)\n      - [Stake pool info](#stake-pool-info)\n      - [Lock tokens into stake pool](#lock-tokens-into-stake-pool)\n      - [Unlock tokens from stake pool](#unlock-tokens-from-stake-pool)\n      - [Stake pools info of user](#stake-pools-info-of-user)\n      - [Write pool info](#write-pool-info)\n      - [Lock tokens into write pool](#lock-tokens-into-write-pool)\n      - [Unlock tokens from write pool](#unlock-tokens-from-write-pool)\n      - [Download cost](#download-cost)\n      - [Upload cost](#upload-cost)\n  - [Config](#config)\n    - [~/.zcn/config.yaml](#zcnconfigyaml)\n    - [Override Network](#override-network)\n  - [Troubleshooting](#troubleshooting)\n\n## Getting started\n\n### 1. Installation\n\n**Prerequisites**\n\n- Go: Installation instructions for Mac, Linux and Windows can be found [here](https://go.dev/doc/install).\n\n**Procedures**\n\n1. Clone the `zboxcli` repo and install\n\n```sh\ngit clone https://github.com/0chain/zboxcli.git\ncd zboxcli\nmake install\n```\n\n2. Add config yaml at `~/.zcn/config.yaml`\n\nThe following script sets `https://demo.zus.network` as your network.\n\n```sh\ncat \u003e ~/.zcn/config.yaml \u003c\u003c EOF\nblock_worker: https://mainnet.zus.network/dns\nsignature_scheme: bls0chain\nmin_submit: 50 # in percentage\nmin_confirmation: 50 # in percentage\nconfirmation_chain_length: 3\nEOF\n```\n3. Run `zboxcli` to display the list of supported commands.\n\n```sh\n./zbox\n```\n----\nFor machine requirements and pre-requisites, follow the guides below:\n\n- [How to build on Linux/Mac](https://github.com/0chain/zboxcli/wiki/Build-Instructions)\n- [How to build on other platforms](https://github.com/0chain/zboxcli/wiki/Alternative-Platform-Builds)\n\n### 2. Run `zbox` commands\n\nThe following steps assume that your terminal's working directory is inside the `zboxcli` repo.\n\n## Running zbox\n\nWhen you run the `./zbox` command in terminal with no arguments, it will list all the available commands and the global flags. For working of specific command check [commands](#commands) section.\n\n```\nUsage:\n  zbox [command]\n\nAvailable Commands:\n  alloc-cancel        Cancel an allocation\n  alloc-fini          Finalize an expired allocation\n  bl-info             Get blobber info\n  bl-update           Update blobber settings by its delegate_wallet owner\n  collect-reward      Collect accrued rewards for a stake pool.\n  completion          Generate the autocompletion script for the specified shell\n  copy                copy an object(file/folder) to another folder on blobbers\n  cp-info             Challenge pool information.\n  createdir           Create directory\n  decrypt             Decrypt text with passphrase\n  delete              delete file from blobbers\n  download            download file from blobbers\n  feed                download segment files from remote live feed, and upload\n  get-download-cost   Get downloading cost\n  get-upload-cost     Get uploading cost\n  getallocation       Gets the allocation info\n  getwallet           Get wallet information\n  help                Help about any command\n  kill-blobber        punitively deactivate a blobber\n  kill-validator      punitively deactivate a validator\n  list                list files from blobbers\n  list-all            list all files from blobbers\n  listallocations     List allocations for the client\n  ls-blobbers         Show active blobbers in storage SC.\n  ls-validators       Show active Validators.\n  meta                get meta data of files from blobbers\n  move                move an object(file/folder) to another folder on blobbers\n  newallocation       Creates a new allocation\n  rename              rename an object(file/folder) on blobbers\n  rp-create           Create read pool if missing\n  rp-info             Read pool information.\n  rp-lock             Lock some tokens in read pool.\n  rp-unlock           Unlock some expired tokens in a read pool.\n  sc-config           Show storage SC configuration.\n  share               share files from blobbers\n  shutdown-blobber    deactivate a blobber\n  shutdown-validator  deactivate a validator\n  sign-data           Sign given data\n  sp-info             Stake pool information.\n  sp-lock             Lock tokens lacking in stake pool.\n  sp-unlock           Unlock tokens in stake pool.\n  sp-user-info        Stake pool information for a user.\n  start-repair        start repair file to blobbers\n  stats               stats for file from blobbers\n  sync                Sync files to/from blobbers\n  transferallocation  Transfer an allocation from one account to another\n  update              update file to blobbers\n  updateallocation    Updates allocation's expiry and size\n  upload              upload file to blobbers\n  validator-info      Get validator info\n  validator-update    Update validator settings by its delegate_wallet owner\n  version             Prints version information\n  wp-lock             Lock some tokens in write pool.\n  wp-unlock           Unlock some expired tokens in a write pool.\n\nFlags:\n      --config string              config file (default is config.yaml)\n      --configDir string           configuration directory (default is $HOME/.zcn)\n      --fee float                  transaction fee for the given transaction (if unset, it will be set to blockchain min fee)\n  -h, --help                       help for zbox\n      --network string             network file to overwrite the network details (if required, default is network.yaml)\n      --silent                     (default false) Do not show interactive sdk logs (shown by default)\n      --wallet string              wallet file (default is wallet.json)\n      --wallet_client_id string    wallet client_id\n      --wallet_client_key string   wallet client_key\n      --withNonce int              nonce that will be used in transaction (default is 0)\n\nUse \"zbox [command] --help\" for more information about a command.\n```\n\n### Global Flags\n\nGlobal Flags are parameters in zbox that can be used with any command to override the default configuration.zbox supports the following global parameters.\n\n| Flags                      | Description                                                                                                    | Usage                                            |\n| -------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |\n| --config string            | Specify a zbox configuration file (default is [$HOME/.zcn/config.yaml](#zcnconfigyaml))                        | zbox [command] --config config1.yaml             |\n| --configDir string         | Specify a zbox configuration directory (default is $HOME/.zcn)                                                 | zbox [command] --configDir /$HOME/.zcn2          |\n| -h, --help                 | Gives more information about a particular command.                                                             | zbox [command] --help                            |\n| --network string           | Specify a network file to overwrite the network details(default is [$HOME/.zcn/network.yaml](#zcnnetworkyaml)) | zbox [command] --network network1.yaml           |\n| --verbose                  | Provides additional details as to what the particular command is doing.                                        | zbox [command] --verbose                         |\n| --wallet string            | Specify a wallet file or 2nd wallet (default is $HOME/.zcn/wallet.json)                                        | zbox [command] --wallet wallet2.json             |\n| --wallet_client_id string  | Specify a wallet client id (By default client_id specified in $HOME/.zcn/wallet.json is used)                  | zbox [command] --wallet_client_id \u003cclient_id\u003e    |\n| --wallet_client_key string | Specify a wallet client_key (By default client_key specified in $HOME/.zcn/wallet.json is used)                | zbox [command] --wallet_client_key \u003c client_key\u003e |\n\n## Commands\n\nNote in this document, we will only show the commands for particular functionalities,\nthe response will vary depending on your usage and may not be provided in all places.\nTo get a more descriptive view of all the zbox functionalities check zbox cli\ndocumentation at docs.0chain.net.\n\n### Creating and Managing Allocations\n\n#### Create new allocation\n\nCommand `newallocation` reserves hard disk space on the blobbers. Later `upload`\ncan be used to save files to the blobber. `newallocation` has three modes triggered\nby the presence or absence of the `cost`\nand `free_storage` parameters.\n\n- `cost` Converts `newallocation` into a query that returns the cost of the allocation\n  determined by the remaining parameters.\n- [`free_storage`](#free-storage-allocation) Creates an allocation using a free storage marker. All other\n  parameters except `cost` will be ignored. The allocation settings will be set\n  automatically by `0chain`, from preconfigured values.\n- `otherwise` Creates an allocation applying the settings indicated by the\n  remaining parameters.\n- Use `owner` if you want to create and fund an allocation for someone else. If\n  using this option then you need to provide the new owner's public key. Otherwise,\n  the owner defaults to the client.\n\n| Parameter              | Description                                                             | Default        | Valid Values |\n| ---------------------- | ----------------------------------------------------------------------- | -------------- | ------------ |\n| allocationFileName     | local file to store allocation information                              | allocation.txt | file path    |\n| cost                   | returns the cost of the allocation, no allocation created               |                | flag         |\n| data                   | number of data shards, effects upload and download speeds               | 2              | int          |\n| free_storage           | free storage marker file.                                               |                | file path to json marker file    |\n| owner                  | owner's id, use for funding an allocation for another                   |                | string       |\n| owner_public_key       | public key, use for funding an allocation for another                   |                | string       |\n| lock\\*                 | lock write pool with given number of tokens                             |                | float        |\n| parity                 | number of parity shards, effects availability  (has to be more than 1 and less than the number of available blobbers on the chain (upper capped to 30))                         | 2              | int          |\n| read_price             | filter blobbers by read price range                                     | 0-inf          | range        |\n| size                   | size of space reserved on blobbers                                      | 2147483648     | bytes        |\n| usd                    | give token value in USD                                                 |                | flag         |\n| write_price            | filter blobbers by write price range                                    | 0-inf          | range        |\n| third_party_extendable | specify if the allocation can be extended by users other than the owner | false          | bool         |\n| forbid_upload          | specify if users cannot upload to this allocation                       |    false          | bool         |\n| forbid_delete          | specify if the users cannot delete objects from this allocation         |    false          | bool         |\n| forbid_update          | specify if the users cannot update objects in this allocation           |    false          | bool         |\n| forbid_move            | specify if the users cannot move objects from this allocation           |    false          | bool         |\n| forbid_copy            | specify if the users cannot copy object from this allocation            |    false          | bool         |\n| forbid_rename          | specify if the users cannot rename objects in this allocation           |    false          | bool         |\n| blobber_auth_tickets   | comma separated list of blobber auth tickets                            |                | comma separated list of strings       |\n| force          | force to get blobbers even if required number of blobbers are not available (should be passed true in case of restricted blobbers)          | false          | bool         |\n| name          | allocation name           |            | string         |\n| preferred_blobbers          | comma separated list of preferred blobber ids           |           | comma separated list of strings        |\n`*` - only required if free_storage not set.\n\n\u003cdetails\u003e\n  \u003csummary\u003enewallocation \u003c/summary\u003e\n\n![allocation](https://user-images.githubusercontent.com/65766301/120052477-27529f00-c043-11eb-91bb-573558325b20.png)\n\n![image](https://user-images.githubusercontent.com/6240686/125315476-15953480-e32f-11eb-8a11-b069079911d3.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFree storage newallocation \u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127857969-1aa1a56c-4a65-4ba5-b724-943cf12594b4.png)\n\n\u003c/details\u003e\n\n##### Free storage allocation\n\nEntities can give free `0chain` storage in the form of markers. A marker takes the\nform of a json file\n\n```json\n{\n  \"assigner\": \"my_corporation\",\n  \"recipient\": \"f174cdda7e24aeac0288afc2e8d8b20eda06b18333efd447725581dc80552977\",\n  \"free_tokens\": 2.1,\n  \"timestamp\": 2000000,\n  \"signature\": \"9edb86c8710d5e3ee4fde247c638fd6b81af67e7bb3f9d60700aec8e310c1f06\"\n}\n```\n\n- `assigner` A label for the entity providing the free storage.\n- `recipient` The marker has to be run by the recipient to be valid.\n- `free_tokens` The amount of free tokens. When creating a new allocation the\n  free tokens will be split between the allocation's write pool,\n  and a new read pool; the ratio of this split configured on the blockchain.\n- `timestamp` A unique timestamp. Used to prevent multiple applications of the same marker.\n- `signature` Signed by the assigner, validated using the stored public key on the blockchain.\n  All allocation settings, other than `lock`, will be set automatically by 0chain.\n  Once created, an allocation funded by a free storage marker becomes identical to\n  any other allocation; Its history forgotten.\n\n```shell\nAllocation created : d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac\n```\n\nExample\n\nTo create a new allocation with default values,use `newallocation` with a `--lock` flag to add\nsome tokens to the write pool .On success a related write pool is created and the allocation\ninformation is stored under `$HOME/.zcn/allocation.txt`.\n\n```shell\n./zbox newallocation --lock 0.5\n```\n\nTo use a free storage marker, you only need to provide the path to the marker file.\n\n```shell\n./zbox newallocation --lock 0.5 --free_storage markers/my_marker.json\n```\n\nResponse:\n\n```\nAllocation created : d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac\n```\n\n#### Update allocation\n\n`updateallocation` updates allocation settings. It has two modes depending on\nthe presence of the `free_storage` field.\n\n- `free_storage` Uses a free storage marker to fund this allocation update; settings\n  predefined by `0chain`. See [newallocation](#free-storage-allocation) for further details.\n- `otherwise` Update an allocation applying the settings indicated by the\n  remaining parameters.\n\nIf not a `free_storage` update, then tokens will come from those locked.\nFurther we can add a blobber to the allocation,\nadding a blobber will allow a blobber to be removed.\nAn increase in blobber count will increment the parity shards.\n\n| Parameter      | Required | Description                                                          |   Default| Valid Values |\n| -------------- | -------- | -------------------------------------------------------------------- |          | ------------ |\n| allocation     | yes      | allocation id                                                        |          | string       |\n| name           |          | allocation name                                                      |          | string       |\n| extend         |          | adjust storage expiration time                                       |          | duration     |\n| free_storage   |          | free storage marker file                                             |          | string       |\n| lock           | yes\\*    | lock additional tokens in write pool                                 |          | int          |\n| size           |          | adjust allocation size                                               |          | bytes        |\n| add_blobber    |          | add a new blobber to the allocation, required for remove_blobber     |          | string       |\n| add_blobber_auth_ticket    |          | Auth ticket of blobber to add to the allocation     |       | string       |\n| remove_blobber |          | remove a blobber from the allocation, requires an add_blobber option |        | string      |\n| third_party_extendable  |      | specify if the allocation can be extended by users other than the owner | false | bool\n| forbid_upload |         |specify if users cannot upload to this allocation | false | bool\n| forbid_delete |         |specify if the users cannot delete objects from this allocation | false | bool\n| forbid_update |         |specify if the users cannot update objects in this allocation |   false | bool\n| forbid_move   |         |specify if the users cannot move objects from this allocation |   false | bool\n| forbid_copy   |         |specify if the users cannot copy object from this allocation |   false | bool\n| forbid_rename |         |specify if the users cannot rename objects in this allocation |   false | bool\n`*` only required if free_storage not set.\n\u003cdetails\u003e\n  \u003csummary\u003eupdateallocation \u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/125335948-0b7e3080-e345-11eb-82af-20fd1e4501df.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eFree storage updateallocation\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/125335821-e984ae00-e344-11eb-9960-648a76550bc3.png)\n\n\u003c/details\u003e\n\n```\n./zbox updateallocation --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac --expiry 48h --size 4096\n```\n\n```shell\n./zbox updateallocation --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac --free_storage \"markers/my_marker.json\"\n```\n\nOutput:\n\n```\nAllocation updated with txId : fb84185dae620bbba8386286726f1efcd20d2516bcf1a448215434d87be3b30d\n```\n\n#### Transfer allocation ownership\n\n`transferallocation` transfers an allocation from one account to another.\nThis operation needs to be run by the current owner of the allocation.\n\n| Parameter  | Required | Description   | Valid Values |\n| ---------- | -------- | ------------- | ------------ |\n| allocation | yes      | allocation id | string       |\n| new_owner  | yes      | new owner id  | string       |\n| new_owner_key  | yes      | new owner public key  | string       |\n\n```shell\n./zbox transferallocation --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac --new_owner e61b1d5f081c4dfa4d45c852ca8abbfcdc3023ed4ffe2402ba7e9b2ebc56b129 --new_owner_key 421d9f68e121884a02587c1d5aad0ca81a4df2358abe1acb0952efdd5a6afc0ed198ec897a848890bd36a74f3dfd178a1ed9dcd2fab969b6ed073f98d795759d\n```\n\nOutput:\n\n```\ntransferred ownership of allocation : d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac to e61b1d5f081c4dfa4d45c852ca8abbfcdc3023ed4ffe2402ba7e9b2ebc56b129\n```\n\n#### Forbid Allocation\n\nThere are various operations which you can forbid on an allocation. Forbid flag works with [update allocation](#update-allocation) command. Check its working first.\nHere are the operations:\n\n| Parameter       | Description                                                  |\n| --------------- | ------------------------------------------------------------ |\n| --forbid_copy   | specify if the users cannot copy object from this allocation |\n| --forbid_update | specify if the users cannot update objects in this allocation |\n| --forbid_delete | specify if the users cannot delete objects from this allocation |\n| --forbid_move   | specify if the users cannot move objects from this allocation |\n| --forbid_rename | specify if the users cannot rename objects in this allocation |\n| --forbid_upload | specify if users cannot upload to this allocation            |\n\n\nHere is a sample command for --forbid_upload .Other parameters can be done the same way.\n\n```sh\n./zbox updateallocation --allocation $ALLOC --forbid_upload\n```\nSample Response :\n```sh\nAllocation Updated with txID : b84185dae620bbba8386286726f1efcd20d2516bcf1a448215434d87be3b30d\n```\nTo test functionality try uploading file to allocation. You should get the following response :\n```\nUpload failed. this options for this file is not permitted for this allocation:\nfile_option_not_permitted.\n```\n#### Cancel allocation\n\n`alloc-cancel` immediately return all remaining tokens from challenge pool back to the\nallocation's owner and cancels the allocation. If blobbers already got some tokens,\nthe tokens will not be returned. Remaining min lock payment to the blobber will be\nfunded from the allocation's write pools.\n\nCancelling an allocation can only occur if the amount of failed challenges exceed a preset threshold.\n\n| Parameter  | Required | Description   | Valid Values |\n| ---------- | -------- | ------------- | ------------ |\n| allocation | yes      | allocation id | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003ealloc-cancel\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127854863-eff675aa-17ec-4251-a084-ffa400e8daa1.png)\n\n\u003c/details\u003e\n\nExample\n\n```sh\n./zbox alloc-cancel --allocation \u003callocation_id\u003e\n```\nSample Response : \n```sh\nAllocation canceled with txId : 501df5a8e2a6b8ebced1d1e7dc4ed17f653012dd49834801b4413786ec031cd2\n```\n\n#### Finalise allocation\n\n`alloc-fini` finalises an expired allocation. An allocation becomes expired when\nthe expiry time has passed followed by a period equal to the challenge completion\nperiod.\n\nAny remaining min lock payment to the blobber will be funded from the\nallocation's write pools. Any available money in the challenge pool returns to\nthe allocation's owner.\n\nAn allocation can be finalised by the owner or one of the allocation blobbers.\n\n| Parameter  | Required | Description   | Valid Values |\n| ---------- | -------- | ------------- | ------------ |\n| allocation | yes      | allocation id | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003ealloc-fini\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127855881-e7578512-d972-49c3-8920-843a04d740f1.png)\n\n\u003c/details\u003e\n\nExample\n\n```sh\n./zbox alloc-fini --allocation \u003callocation_id\u003e\n```\n\nSample Response:\n\n```sh\nAllocation finalized with txId : 2a6c031ced1d1e7dc4ed17801b4413786ecd2501df5ab8ebf653012dd498348e\n```\n#### List blobbers\n\nUse `ls-blobbers` command to show active blobbers.\n\n| Parameter | Required | Description                          | Valid Values |\n| --------- | -------- | ------------------------------------ | ------------ |\n| all       | no       | shows active and non active blobbers | bool         |\n| json      | no       | display result in .json format       | bool         |\n| stakable  | no       | gets only stakable list of blobbers if set to true     | bool         |\n\n\u003cdetails\u003e\n  \u003csummary\u003els-blobbers\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127860789-94d8118c-93d4-4afe-ae09-05d1e4f053d7.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox ls-blobbers\n- id:                    0ece681f6b00221c5567865b56040eaab23795a843ed629ce71fb340a5566ba3\n  url:                   http://demo.zus.network:31302\n  used / total capacity: 101.7 GiB / 1000.0 GiB\n  terms:\n    read_price:          0.01 tok / GB\n    write_price:         0.01 tok / GB / time_unit\n    min_lock_demand:     0.1\n    max_offer_duration:  744h0m0s\n- id:                    788b1deced159f12d3810c61b4b8d381e80188c470e9798939f2e5036d964ffc\n  url:                   http://demo.zus.network:31301\n  used / total capacity: 102.7 GiB / 1000.0 GiB\n  terms:\n    read_price:          0.01 tok / GB\n    write_price:         0.01 tok / GB / time_unit\n    min_lock_demand:     0.1\n    max_offer_duration:  744h0m0s\n```\n\n#### Detailed blobber information\n\nUse `bl-info` command to get detailed blobber information.\n\n| Parameter  | Required | Description                         | default | Valid values |\n| ---------- | -------- | ----------------------------------- | ------- | ------------ |\n| blobber_id | yes      | blobber on which to get information |         | string       |\n| json       | no       | print result in json format         | false   | boolean      |\n\n\u003cdetails\u003e\n  \u003csummary\u003ebl-info\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124609407-7fad6580-de67-11eb-896c-1f7be1faf7c0.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox bl-info --blobber_id f65af5d64000c7cd2883f4910eb69086f9d6e6635c744e62afcfab58b938ee25\n```\n\nResponse:\n\n```\nid:                f65af5d64000c7cd2883f4910eb69086f9d6e6635c744e62afcfab58b938ee25\nurl:               http://localhost:5051\ncapacity:          1.0 GiB\nlast_health_check: 2021-04-08 22:54:50 +0700 +07\ncapacity_used:     0 B\nterms:\n  read_price:         0.01 tok / GB\n  write_price:        0.1 tok / GB\n  min_lock_demand:    10 %\n  max_offer_duration: 744h0m0s\nsettings:\n  delegate_wallet: 8b87739cd6c966c150a8a6e7b327435d4a581d9d9cc1d86a88c8a13ae1ad7a96\n  min_stake:       1 tok\n  max_stake:       100 tok\n  num_delegates:   50\n  service_charge:  30 %\n```\n\n#### List all files\n\n`list-all` lists all the files stored with an allocation\n\n| Parameter  | Required | Description                                    | Default | Valid values |\n| ---------- | -------- | ---------------------------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id, sender must be allocation owner |         | string       |\n\nSample Request : \n```sh\n./zbox list-all --allocation 4ebeb69feeaeb3cd308570321981d61beea55db65cbeba4ba3b75c173c0f141b\n```\n\nSample Response : \n```sh\n[{\"size\":0,\"mimetype\":\"\",\"actual_size\":0,\"hash\":\"\",\"type\":\"d\",\"encrypted_key\":\"\",\"lookup_hash\":\"55e45925760e33f113642569a539e17a531285d2bf53dc78fde954017c8b27b3\",\"created_at\":1714335152,\"updated_at\":1714335152,\"name\":\"abcd\",\"path\":\"/abcd\"}]\n```\n\n#### List owner's allocations\n\n`listallocations` provides a list of all allocations owned by the user.\n\n| Parameter | Required | Description                 | default | Valid values |\n| --------- | -------- | --------------------------- | ------- | ------------ |\n| json      | no       | print output in json format |         | boolean      |\n\n\u003cdetails\u003e\n  \u003csummary\u003elistallocations\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127861831-ba36f343-0210-442e-8d12-d580e46415a3.png)\n\n\u003c/details\u003e\n\n```shell\n./zbox listallocations\nZED | CANCELED | R  PRICE |   W  PRICE\n+------------------------------------------------------------------+-----------+-------------------------------+------------+--------------+-----------+----------+----------+--------------+\n  4ebeb69feeaeb3cd308570321981d61beea55db65cbeba4ba3b75c173c0f141b | 104857600 | 2021-07-16 13:34:29 +0100 BST |          1 |            1 | false     | false    |     0.02 | 0.1999999998\n```\n\n#### Update blobber settings\n\nUse `./zbox bl-update ` to update a blobber's configuration settings. This updates the settings\non the blockchain not the blobber.\n\n| Parameter          | Required | Description                               | default | Valid values |\n| ------------------ | -------- | ----------------------------------------- | ------- | ------------ |\n| blobber_id         | yes      | id of blobber of which to update settings |         | string       |\n| capacity           | no       | update blobber capacity                   |         | int          |\n| max_offer_duration | no       | update max offer duration                 |         | duration     |\n| max_stake          | no       | update maximum stake                      |         | float        |\n| min_lock_demand    | no       | update minimum lock demand                |         | float        |\n| min_stake          | no       | update minimum stake                      |         | float        |\n| num_delegates      | no       | update maximum number of delegates        |         | int          |\n| read_price         | no       | update read price                         |         | float        |\n| service_charge     | no       | update service charge                     |         | float        |\n| write_price        | no       | update write price                        |         | float        |\n| url                | no       | update the url of the blobber             |         | string       |\n| is_restricted      | no       | update whether blobber is restricted             |      false    | bool       |\n| not_available      | no       | set blobber's availability for new allocations                        |     false        |    bool     |\n\u003cdetails\u003e\n  \u003csummary\u003ebl-update\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124616924-6825ab00-de6e-11eb-80a7-13e8061dd20b.png)\n\n\u003c/details\u003e\n\nExample\n\nUpdate blobber read price\n\n```sh\n./zbox bl-update --blobber_id 0ece681f6b00221c5567865b56040eaab23795a843ed629ce71fb340a5566ba3 --read_price 0.1\n```\n\nResponse : \n```sh\nblobber settings updated successfully\n```\n\n#### Update validator settings\n\nUse `./zbox validator-update ` to update a validator's configuration settings. This updates the settings\non the blockchain not the validator.\n\n| Parameter          | Required | Description                               | default | Valid values |\n| ------------------ | -------- | ----------------------------------------- | ------- | ------------ |\n| validator_id       | yes      | id of validator of which to update settings |         | string       |\n| max_stake          | no       | update maximum stake                      |         | float        |\n| min_stake          | no       | update minimum stake                      |         | float        |\n| num_delegates      | no       | update maximum number of delegates        |         | int          |\n| service_charge     | no       | update service charge                     |         | float        |\n\nExample\n\nUpdate validator service charge\n\n```sh\n./zbox validator-update --validator_id 0ece681f6b00221c5567865b56040eaab23795a843ed629ce71fb340a5566ba3 --service_charge 0.1\n```\n\n#### Get Version\n\nThe version of Zbox and Gosdk can be fetched using the ./zbox version command.\n\n```sh\n./zbox version\n```\nSample Response:\n\n```sh\nzbox....:  v1.4.3\ngosdk...:  v1.8.14\n```\n\n#### List All Validators\n\nList all active validators on the network\n\nCommand:\n```sh\n./zbox ls-validators\n```\n\n| Parameter          | Required | Description\n| ------------------ | -------- | -----------------------------------------\n| --stakable         | no       | Gets only validators that can be staked if set to true\n| --json             | no       | Print Response as json data\n\nResponse :\n```sh\nid:                b9f4f244e2e483548795e42dad0c5b5bb8f5c25d70cadeafc202ce6011b7ff8c\nurl:               https://demo.zus.network/validator03/\nsettings:\n  delegate_wallet: 9c693cb14f29917968d6e8c909ebbea3425b4c1bc64b6732cadc2a1869f49be9\n  min_stake:       1.000 ZCN\n  max_stake:       100.000 ZCN\n  num_delegates:   50\n  service_charge:  30 %\nid:                c025fad27d3daa6fbe6a10ef38f1075dc5a6386760951816ece953391ff9804b\nurl:               https://demo.zus.network/validator02/\nsettings:\n  delegate_wallet: 9c693cb14f29917968d6e8c909ebbea3425b4c1bc64b6732cadc2a1869f49be9\n  min_stake:       1.000 ZCN\n  max_stake:       100.000 ZCN\n  num_delegates:   50\n  service_charge:  30 %\n```\n\n#### Get Validator Configuration\n\n`./zbox validator-info` command is used to get a particular validator configuration . Here are the parameters for the command .\n\n| Parameter          | Required | Description\n| ------------------ | -------- | -----------------------------------------\n| --validator_id     | yes      | id of validator whose configuration has to be fetched\n| --json             | optional | Print Response as json data\n\nSample Command :\n```sh\n./zbox validator-info --validator_id f82ab34a98406b8757f11513361752bab9cb679a5cb130b81\n```\nSample Response :\n```sh\nid:                f82ab34a98406b8757f11513361752bab9cb679a5cb130b81a4e86cec50eefc3\nurl:               https://demo2.zus.network/validator01\nlast_health_check:  2023-05-12 20:09:15 +0530 IST\nis killed:         false\nis shut down:      false\nsettings:\n  delegate_wallet: 9c693cb14f29917968d6e8c909ebbea3425b4c1bc64b6732cadc2a1869f49be9\n  min_stake:       0 SAS\n  max_stake:       0 SAS\n  total_stake:     200000000000\n  total_unstake:   0\n  num_delegates:   50\n  service_charge:  10 %\n```\n\n#### Shutdown Blobber\n`./zbox shutdown-blobber` command deactivates a blobber to avoid storage of data . Required parameters are :\n\n| Parameter          | Required | Description\n| ------------------ | -------- | -----------------------------------------\n| --id       | yes      | Blobber Id to kill a specific blobber.Can be retrieved using [List blobbers](#list-blobbers).\n| --fee       | no      | Custom fee for transaction\n\n Sample Command :\n```sh\n./zbox shutdown-blobber --id $BLOBBER_ID --wallet $CHAIN_OWNER_WALLET\n```\nNote : Shutdown Blobber command should be invoked from chain owner wallet only\n\nSample Response :\n```sh\nshutdown blobber $BLOBBER_ID with txId : 2a6c031ced1d1e7dc4ed17801b4413786ecd2501df5ab8ebf653012dd498348e\n```\n\n#### Shutdown Validator\n`./zbox shutdown-validator` command deactivates a validator. Required parameters are :\n\n| Parameter          | Required | Description\n| ------------------ | -------- | -----------------------------------------\n| --id       | yes      | Validator Id to kill a specific validator.Can be retrieved using [List all Validators](#list-all-validators).\n| --fee       | no      | Custom fee for transaction\n\n Sample Command :\n```sh\n./zbox shutdown-validator --id $VALIDATOR_ID --wallet $CHAIN_OWNER_WALLET\n```\nNote : Shutdown Validator command should be invoked from chain owner wallet only\n\nSample Response :\n```sh\nshutdown validator $VALIDATOR_ID with txId : 2a6c031ced1d1e7dc4ed17801b4413786ecd2501df5ab8ebf653012dd498348e\n```\n\n#### Kill Blobber\n`./zbox kill-blobber` command deactivates a blobber to avoid storage of data . Required parameters are :\n\n| Parameter          | Required | Description\n| ------------------ | -------- | -----------------------------------------\n| --id       | yes      | Blobber Id to kill a specific blobber.Can be retrieved using [List blobbers](#list-blobbers).\n\n Sample Command :\n```\n./zbox kill-blobber --id $BLOBBER_ID --wallet $CHAIN_OWNER_WALLET\n```\nNote : Kill Blobber command should be evoked from chain owner wallet only\n\nSample Response :\n```\nkilled blobber $BLOBBER_ID\n```\n\n#### Kill Validator\n\n`./zbox kill-validator` command deactivates a specific validator available on the network. Required parameters are :\n\n| Parameter          | Required | Description\n| ------------------ | -------- | -----------------------------------------\n| --id     | yes      | Validator Id to kill a specific blobber.Can be retrieved using [List all Validators](#list-all-validators).\n\n\nSample Command :\n```sh\n./zbox kill-validator --id $VALIDATOR_ID --wallet $CHAIN_OWNER_WALLET\n```\nSample Response :\n```sh\nkilled validator, id: $VALIDATOR_ID\n```\n### Uploading and Managing files\n\n#### Create Directory\n\nUse `createdir` command to create a directory in the specified allocation\n\nThe user must be the owner of the allocation.\n\n| Parameter     | Required | Description                                             | Default | Valid values |\n| ------------- | -------- | ------------------------------------------------------- | ------- | ------------ |\n| allocation    | yes      | allocation id, sender must be allocation owner          |         | string       |\n| dirname    | yes      |  path to directory          |         | string       |\n\nSample Request : \n```sh\n./zbox createdir --allocation {ALLOC_ID} --dirname /abcd/\n```\n\nSample Response : \n```sh\n/abcd/ directory created\n```\n\n#### Upload\n\nUse `upload` command to upload file(s).\n\n- upload a local file\n- download segment files from remote live feed, and upload them\n- start live streaming from local devices, encode it into segment files with `ffmpeg`, and upload them.\n\nThe user must be the owner of the allocation.You can request the file be encrypted before upload, and can send thumbnails with the file.\n\n| Parameter     | Required | Description                                             | Default | Valid values |\n| ------------- | -------- | ------------------------------------------------------- | ------- | ------------ |\n| allocation    | yes      | allocation id, sender must be allocation owner          |         | string       |\n| encrypt       | no       | encrypt file before upload                              | false   | boolean      |\n| web-streaming | no       | transcode file before upload to fragmented mp4          | false   | boolean      |\n| localpath     | yes      | local path of the file to upload                        |         | file path    |\n| remotepath    | yes      | remote path to upload file to, use to access file later |         | string       |\n| thumbnailpath | no       | local path of thumbnail                                 |         | file path    |\n| chunknumber   | no       | how many chunks should be uploaded in a http request    | 1       | int          |\n| attr-who-pays-for-reads | no       | Who pays for reads: owner or 3rd_party        | owner   | owner / 3rd_party|\n| multiuploadjson | no     | A JSON file containing multiupload options    |        | file path          |\n\n\u003cdetails\u003e\n  \u003csummary\u003eupload\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124287350-cf2e2180-db47-11eb-8079-40f069a5e0c2.png)\n\n\u003c/details\u003e\n\nExample\n\n**Upload file with no encryption**\n\n```\n./zbox upload --localpath /absolute-path-to-local-file/hello.txt --remotepath /myfiles/hello.txt --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac\n```\n\nResponse:\n\n```\n12390 / 12390 [================================================================================] 100.00% 3s\nStatus completed callback. Type = application/octet-stream. Name = hello.txt\n```\n\n**Upload file with encryption**\n\nUse upload command with optional encrypt parameter to upload a file in encrypted\nformat. This can be downloaded as normal from same wallet/allocation or utilize\nProxy Re-Encryption facility (see [download](https://github.com/0chain/zboxcli#Download) command).\n\n```\n./zbox upload --encrypt --localpath \u003cabsolute path to file\u003e/sensitivedata.txt --remotepath /myfiles/sensitivedata.txt --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac\n```\n\nResponse:\n\n```\n12390 / 12390 [================================================================================] 100.00% 3s\nStatus completed callback. Type = application/octet-stream. Name = sensitivedata.txt\n```\n\n**Upload file with web-streaming**\n\nUse upload command with optional web-streaming parameter to upload a video file in fragmented\nmp4 format to support streaming from browser.\n\n```\n./zbox upload --web-streaming --localpath \u003cabsolute path to file\u003e/samplevideo.mov --remotepath /myfile/ --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac\n```\n\nResponse:\n\n```\n15691733 / 15691733 [=====================================================================================] 100.00% 32s\nStatus completed callback. Type = video/fmp4. Name = raw.samplevideo.mp4\n```\n\n#### Feed\n\nUse `feed` command to automatically download segment files from remote live feed with `--downloader-args \"-q -f best\"`\n\n- encode them into new segment files with `--delay` and `--ffmpeg-args`, and upload.\n- please use `youtube-dl -F https://www.youtube.com/watch?v=pC5mGB5enkw` to list formats of video (see below).\n\nThe user must be the owner of the allocation.You can request the file be encrypted before upload, and can send thumbnails with the file.\n\n| Parameter       | Required | Description                                                           | Default           | Valid values                                                                       |\n| --------------- | -------- | --------------------------------------------------------------------- | ----------------- | ---------------------------------------------------------------------------------- |\n| allocation      | yes      | allocation id, sender must be allocation owner                        |                   | string                                                                             |\n| encrypt         | no       | encrypt file before upload                                            | false             | boolean                                                                            |\n| localpath       | yes      | local path of segment files to download, generate and upload          |                   | file path                                                                          |\n| remotepath      | yes      | remote path to upload file to, use to access file later               |                   | string                                                                             |\n| thumbnailpath   | no       | local path of thumbnaSil                                              |                   | file path                                                                          |\n| chunknumber     | no       | how many chunks should be uploaded in a http request                  | 1                 | int                                                                                |\n| delay           | no       | set segment duration to seconds.                                      | 5                 | int                                                                                |\n| feed            | no       | set remote live feed to url.                                          | false             | url                                                                                |\n| downloader-args | no       | pass args to youtube-dl to download video. default is \\\"-q -f best\\\". | -q -f best        | [youtube-dl](https://github.com/ytdl-org/youtube-dl/blob/master/README.md#options) |\n| ffmpeg-args     | no       | pass args to ffmpeg to build segments.                                | -loglevel warning | [ffmpeg](https://www.ffmpeg.org/ffmpeg.html)                                       |\n| attr-who-pays-for-reads | no       | Who pays for reads: owner or 3rd_party        | owner   | owner / 3rd_party|\nenum\n\u003cdetails\u003e\n  \u003csummary\u003efeed\u003c/summary\u003e\n\n![image](https://github.com/0chain/blobber/wiki/uml/usecase/live_upload_sync.png)\n\n\u003c/details\u003e\n\n```\n[youtube] pC5mGB5enkw: Downloading webpage\n[info] Available formats for pC5mGB5enkw:\nformat code  extension  resolution note\n249          webm       audio only tiny   44k , webm_dash container, opus @ 44k (48000Hz), 95.21MiB\n250          webm       audio only tiny   59k , webm_dash container, opus @ 59k (48000Hz), 127.05MiB\n251          webm       audio only tiny  123k , webm_dash container, opus @123k (48000Hz), 264.98MiB\n140          m4a        audio only tiny  129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 277.82MiB\n278          webm       256x136    144p   87k , webm_dash container, vp9@  87k, 30fps, video only, 188.78MiB\n160          mp4        256x136    144p  118k , mp4_dash container, avc1.4d400c@ 118k, 30fps, video only, 253.62MiB\n242          webm       426x224    240p  190k , webm_dash container, vp9@ 190k, 30fps, video only, 409.20MiB\n133          mp4        426x224    240p  252k , mp4_dash container, avc1.4d400d@ 252k, 30fps, video only, 541.15MiB\n243          webm       640x338    360p  326k , webm_dash container, vp9@ 326k, 30fps, video only, 701.53MiB\n134          mp4        640x338    360p  576k , mp4_dash container, avc1.4d401e@ 576k, 30fps, video only, 1.21GiB\n244          webm       854x450    480p  649k , webm_dash container, vp9@ 649k, 30fps, video only, 1.36GiB\n135          mp4        854x450    480p 1028k , mp4_dash container, avc1.4d401f@1028k, 30fps, video only, 2.16GiB\n247          webm       1280x676   720p 1320k , webm_dash container, vp9@1320k, 30fps, video only, 2.77GiB\n136          mp4        1280x676   720p 1988k , mp4_dash container, avc1.64001f@1988k, 30fps, video only, 4.17GiB\n248          webm       1920x1012  1080p 2527k , webm_dash container, vp9@2527k, 30fps, video only, 5.30GiB\n137          mp4        1920x1012  1080p 4125k , mp4_dash container, avc1.640028@4125k, 30fps, video only, 8.64GiB\n271          webm       2560x1350  1440p 7083k , webm_dash container, vp9@7083k, 30fps, video only, 14.84GiB\n313          webm       3840x2026  2160p 13670k , webm_dash container, vp9@13670k, 30fps, video only, 28.65GiB\n18           mp4        640x338    360p  738k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz), 1.55GiB\n22           mp4        1280x676   720p 2117k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)\n```\n\n`--downloader-args \"-f 22\"` dowloads video with `22           mp4        1280x676   720p 2117k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)`\n\n```\n./zbox feed --localpath \u003cabsolute path to file\u003e/tvshow.m3u8 --remotepath /videos/tvsho --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac  --delay 10 --downloader-args \"-f 22\" --feed https://www.youtube.com/watch?v=pC5mGB5enkw\n\n```\n\n#### Download\n\nUse `download` command to download your own or a shared file.\n\n- `owner` The owner of the allocation can always download files, in this case the owner pays for the download.\n- `collaborator` A collaborator can download files, the owner pays. To add collaborators to an allocation, use\n  [add-collab](#add-collaborator).\n- `authticket` To download a file using `authticket`, you must have previous be given an auth\n  ticket using the [share](#share) command. Use rx_pay to indicate who pays, `rx_pay = true` you pay,\n  `rx_pay = false` the allocation owner pays.\n  Use `startblock` and `endblock` to only download part of the file.\n\n| Parameter       | Required | Description                                                                                             | Default | Valid values |\n| --------------- | -------- | ------------------------------------------------------------------------------------------------------- | ------- | ------------ |\n| allocation      | yes      | allocation id                                                                                           |         | string       |\n| authticket      | no       | auth ticked if not owner of the allocation, use share to get auth ticket                                |         | string       |\n| blockspermarker | no       | download multiple blocks per marker                                                                     | 10      | int          |\n| endblock        | no       | download until specified block number                                                                   |         | int          |\n| localpath       | yes      | local path to which to download the file to                                                             |         | file path    |\n| remotepath      | yes      | remote path to which the file was uploaded                                                              |         | string       |\n| startblock      | no       | start download from specified block                                                                     |         | int          |\n| thumbail        | no       | only download the thumbnail                                                                             | false   | boolean      |\n| live            | no       | start m3u8 downloader,and automatically generate media playlist(m3u8) on --localpath                    | false   | boolean      |\n| delay           | no       | pass segment duration to generate media playlist(m3u8). only works with --live. default duration is 5s. | 5       | int          |\n| lookuphash      | no       | The remote lookuphash of the object retrieved from the list      |        | string          |\n| multidownloadjson      | no       | A JSON file containing multi download options      |        | string          |\n| verifydownload         | no       | pass this option to verify downloaded blocks      |   false    |  boolean           |\n\n\n\u003cdetails\u003e\n  \u003csummary\u003edownload\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124352957-79b34c80-dbfb-11eb-883f-4bb583b9a618.png)\n\n\u003c/details\u003e\n\nExample (for owner)\n\n```\n./zbox download --allocation 3c0d32560ea18d9d0d76808216a9c634f661979d29ba59cc8dafccb3e5b95341 --remotepath /myfiles/horse.jpeg --localpath ../horse.jpeg\n```\n\nExample (for non-owner) with authticket\n\n```\n./zbox download --allocation 3c0d32560ea18d9d0d76808216a9c634f661979d29ba59cc8dafccb3e5b95341 --authticket eyJjbGllbnRfaWQiOiIiLCJvd25lcl9pZCI6IiIsImFsbG9jYXRpb24iOiIzYzBkMzI1NjBlYTE4ZDlkMGQ3NjgwODIxNmE5YzYzNGY2NjE5NzlkMjliYTU5Y2M4ZGFjYmMzZTViOTUzNDEiLCJyZW1vdGVwYXRoIjoiL215ZmlsZXMvaG9yc2UuanBlZyIsImV4cG9ydCI6IjIwMjEtMDctMjFUMDk6MjA6MjAuMDAwWiJ9 --localpath ../horse.jpeg\n```\nIf the authticket is for a directory, not a file, then you need to provide the lookup hash of the file you want to download. You can get the lookup hash from the [list](#list) command.\n\n\nResponse:\n\n```\n4 / 4 [=======================================================================] 100.00% 3s\nStatus completed callback. Type = application/octet-stream. Name = horse.jpeg\n```\n\nNote: You can download by using only 1 on the below combination:\n\n- `--remotepath`, `--allocation`\n- `--authticket`\n\nDownloaded file will be in the location specified by the `localpath` argument.\n\n#### Update\n\nUse `update` command to update content of an existing file in the remote path.\nLike [upload](#upload) command. Only the owner of the allocation or a collaborator\ncan update a file. To add collaborators to an allocation, use\n[add-collab](#add-collaborator).\n\n| Parameter     | Required | Description                                          | Default | Valid values |\n| ------------- | -------- | ---------------------------------------------------- | ------- | ------------ |\n| allocation    | yes      | allocation id                                        |         | string       |\n| encrypt       | no       | encrypt file before upload                           | false   | boolean      |\n| localpath     | yes      | local file to upload                                 |         | file path    |\n| remotepath    | yes      | remote file to upload                                |         | string       |\n| thumbnailpath | no       | local fumbnail file to upload                        |         | file path    |\n| chunknumber   | no       | how many chunks should be uploaded in a http request | 1       | int          |\n\n\u003cdetails\u003e\n  \u003csummary\u003eupdate\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124354473-14b02480-dc04-11eb-9463-5a91d4f6f02d.png)\n\n\u003c/details\u003e\n\nSample Command : \n```sh\n./zbox update --allocation {ALLOC_ID} --localpath ./zbox_commands.txt --remotepath /abcd/ --encrypt\n```\n\nSample Response : \n```sh\nStatus completed callback. Type = application/octet-stream. Name = zbox_commands.txt\n```\n\n#### Delete\n\nUse `delete` command to delete your file on the allocation. Only the owner\nof the application can delete a file.\n\n| Parameter  | Required | Description                   | Default | Valid values |\n| ---------- | -------- | ----------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id                 |         | string       |\n| remotepath | yes      | remote path of file to delete |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003edelete\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124353872-0f050f80-dc01-11eb-9e45-ddf2c888223b.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox delete --allocation 3c0d32560ea18d9d0d76808216a9c634flist661979d29ba59cc8dafccb3e5b95341 --remotepath /myfiles/horse.jpeg\n```\n\nResponse:\n\n```\n/myfiles/horse.jpeg deleted\n```\n\nFile successfully deleted (Can be verified using [list](https://github.com/0chain/zboxcli#List))\n\n#### Share\n\n![Alt text](documents/share_cli.png?raw=true 'Share')\n\nUse share command to generate an authtoken that provides authorization to the holder to the specified file on the remotepath.\n\n`auth ticket` can be used with [download](#download), and [list](#list),\n[meta](#get-metadata) and [get_download_cost](#download-cost), but only for files in\nthe pre-defined remote path.\n\n| Parameter           | Required | Description                                                                                                                                                                                               | Valid values |\n| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |\n| allocation          | yes      | allocation id                                                                                                                                                                                             | string       |\n| clientid            | no       | id of user to share file with (or revoke share from), leave blank for public share (or to revoke public sharing)                                                                                                                                               | string       |\n| encryptionpublickey | no       | public key of the client to share file with, required if clientId                                                                                                                                         | string       |\n| expiration-seconds  | no       | seconds before `auth ticket` expires                                                                                                                                                                      | int          |\n| remotepath          | yes      | remote path of file to share                                                                                                                                                                              | string       |\n| revoke              | no       | revoke share for remote path                                                                                                                                                                              | flag         |\n| available-after     | no       | timelock for private file that makes the file available for download at certain time. 4 input formats are supported: +1h30m, +30, 1647858200 and 2022-03-21 10:21:38. default value is current local time | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003eshare\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127869637-323e5eae-7306-40a2-a552-86726f19a4a4.png)\n\n\u003c/details\u003e\n\nExample\n\n**Public share**\n\n```\n./zbox share --allocation 3c0d32560ea18d9d0d76808216a9c634f661979d29ba59cc8dafccb3e5b95341 --remotepath /myfiles/hello.txt\n```\n\nResponse:\n\n```\nAuth token eyJjbGllbnRfaWQiOiIiLCJvd25lcl9pZCI6IjE3ZTExOTQwNmQ4ODg3ZDAyOGIxNDE0YWNmZTQ3ZTg4MDhmNWIzZjk4Njk2OTk4Nzg3YTIwNTVhN2VkYjk3YWYiLCJhbGxvY2F0aW9uX2lkIjoiODlkYjBjZDI5NjE4NWRkOTg2YmEzY2I0ZDBlODE0OTE3NmUxNmIyZGIyMWEwZTVjMDZlMTBmZjBiM2YxNGE3NyIsImZpbGVfcGF0aF9oYXNoIjoiM2NhNzIyNTQwZTY1M2Y3NTQ1NjI5ZjBkYzE5ZGY2ODk5ZTI0MDRjNDI4ZDRiMWZlMmM0NjI3ZGQ3MWY3ZmQ2NCIsImFjdHVhbF9maWxlX2hhc2giOiIyYmM5NWE5Zjg0NDlkZDEyNjFmNmJkNTg3ZjY3ZTA2OWUxMWFhMGJiIiwiZmlsZV9uYW1lIjoidGVzdC5wZGYiLCJyZWZlcmVuY2VfdHlwZSI6ImYiLCJleHBpcmF0aW9uIjoxNjM1ODQ5MzczLCJ0aW1lc3RhbXAiOjE2MjgwNzMzNzMsInJlX2VuY3J5cHRpb25fa2V5IjoiIiwiZW5jcnlwdGVkIjpmYWxzZSwic2lnbmF0dXJlIjoiZDRiOTM4ZTE0MDk0ZmZkOGFiMDcwOWFmN2QyMDAyZTdlMGFmNmU3MWJlNGFmMmRjNmUxMGYxZWJmZTUwOTMxOSJ9\n```\n\n```\nAuth token decoded\n\n{\"client_id\":\"\",\"owner_id\":\"17e119406d8887d028b1414acfe47e8808f5b3f98696998787a2055a7edb97af\",\"allocation_id\":\"89db0cd296185dd986ba3cb4d0e8149176e16b2db21a0e5c06e10ff0b3f14a77\",\"file_path_hash\":\"3ca722540e653f7545629f0dc19df6899e2404c428d4b1fe2c4627dd71f7fd64\",\"actual_file_hash\":\"2bc95a9f8449dd1261f6bd587f67e069e11aa0bb\",\"file_name\":\"test.pdf\",\"reference_type\":\"f\",\"expiration\":1635849373,\"timestamp\":1628073373,\"re_encryption_key\":\"\",\"encrypted\":false,\"signature\":\"d4b938e14094ffd8ab0709af7d2002e7e0af6e71be4af2dc6e10f1ebfe509319\"}\n```\n\n**Encrypted share**\n\nUpload file with _--encrypted_ tag.\n\nGet encryptionpublickey first, by calling from user you sharing with:\n\n```\n./zbox getwallet\n```\n\nResponse:\n\n```\nPUBLIC KEY | CLIENTID | ENCRYPTION PUBLIC KEY\n-----------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------+-----------------------------------------------\n  19cd2396df9b8b77358a1110492ff65cbb5b55cae06b8bd204e0969b2454851ca620ae74aebe9ed641166be3bca056a1855610f6154f4f4435a29565a2111282 | b734ef935e2a02892b2fa31e3488b360ef300d3b0b32c03834cea3a83e2453f0 | 1JuT4AbQnmIaOMTuWn07t98xQRsSqXAxZYfwCI1yQLM=\n```\n\nYou have to pickup _ENCRYPTION PUBLIC KEY_\n\nUse _clientid_ of the user to share with. _encryptionpublickey_ - key from command above.\n\n![Private File Sharing](https://user-images.githubusercontent.com/65766301/120052575-962ff800-c043-11eb-9cf7-433383d532a3.png)\n\n```\n./zbox share --allocation 3c0d32560ea18d9d0d76808216a9c634f661979d29ba59cc8dafccb3e5b95341 --remotepath /myfiles/hello.txt --clientid b6de562b57a0b593d0480624f79a55ed46dba544404595bee0273144e01034ae --encryptionpublickey 1JuT4AbQnmIaOMTuWn07t98xQRsSqXAxZYfwCI1yQLM=\n```\n\nResponse:\n\n```\nAuth token eyJjbGllbnRfaWQiOiIwMGZmODhkY2IxNjQ2Y2RlZjA2OWE4MGE0MGQwMWNlOTYyMmQ3ZmUzYmQ0ZWNjMzIzYTcwZTdkNmVkMWE2YjY3Iiwib3duZXJfaWQiOiIxN2UxMTk0MDZkODg4N2QwMjhiMTQxNGFjZmU0N2U4ODA4ZjViM2Y5ODY5Njk5ODc4N2EyMDU1YTdlZGI5N2FmIiwiYWxsb2NhdGlvbl9pZCI6Ijg5ZGIwY2QyOTYxODVkZDk4NmJhM2NiNGQwZTgxNDkxNzZlMTZiMmRiMjFhMGU1YzA2ZTEwZmYwYjNmMTRhNzciLCJmaWxlX3BhdGhfaGFzaCI6IjM2Mjk0MGMwMTZlOWZlZTQ4ZmI5MTA0OGI4MzJjOGFlNWQ2MGUyYzUzMmQ1OGNlYzdmNGM0YjBmZTRkZjM2MzYiLCJhY3R1YWxfZmlsZV9oYXNoIjoiMmJjOTVhOWY4NDQ5ZGQxMjYxZjZiZDU4N2Y2N2UwNjllMTFhYTBiYiIsImZpbGVfbmFtZSI6InRlc3QyLnBkZiIsInJlZmVyZW5jZV90eXBlIjoiZiIsImV4cGlyYXRpb24iOjE2MzU4NDk4NDMsInRpbWVzdGFtcCI6MTYyODA3Mzg0MywicmVfZW5jcnlwdGlvbl9rZXkiOiIiLCJlbmNyeXB0ZWQiOnRydWUsInNpZ25hdHVyZSI6IjNlNGMwOTAwMzAwN2M5NzUzZjFiNGIwODExMWM4OGRlY2JmZjU2MDRmNTIwZDZjMmYyMTdhMzUyZTFkMmE0MTEifQ==\n```\n\n```\nAuth token decoded\n\n{\"client_id\":\"00ff88dcb1646cdef069a80a40d01ce9622d7fe3bd4ecc323a70e7d6ed1a6b67\",\"owner_id\":\"17e119406d8887d028b1414acfe47e8808f5b3f98696998787a2055a7edb97af\",\"allocation_id\":\"89db0cd296185dd986ba3cb4d0e8149176e16b2db21a0e5c06e10ff0b3f14a77\",\"file_path_hash\":\"362940c016e9fee48fb91048b832c8ae5d60e2c532d58cec7f4c4b0fe4df3636\",\"actual_file_hash\":\"2bc95a9f8449dd1261f6bd587f67e069e11aa0bb\",\"file_name\":\"test2.pdf\",\"reference_type\":\"f\",\"expiration\":1635849843,\"timestamp\":1628073843,\"re_encryption_key\":\"\",\"encrypted\":true,\"signature\":\"3e4c09003007c9753f1b4b08111c88decbff5604f520d6c2f217a352e1d2a411\"}\n```\n\nResponse contains an auth ticket- an encrypted string that can be shared.\n\n**Directory share**\n\nFollow up steps above to get _encryptionpublickey_\n\nUpload multiple files to directory with _zbox upload /folder1/file1.z ..._\n\n```\n./zbox share --allocation 3c0d32560ea18d9d0d76808216a9c634f661979d29ba59cc8dafccb3e5b95341 --remotepath /folder1 --clientid b6de562b57a0b593d0480624f79a55ed46dba544404595bee0273144e01034ae --encryptionpublickey 1JuT4AbQnmIaOMTuWn07t98xQRsSqXAxZYfwCI1yQLM=\n```\n\nResponse:\n\nEncoded\n\n```\neyJjbGllbnRfaWQiOiJiNzM0ZWY5MzVlMmEwMjg5MmIyZmEzMWUzNDg4YjM2MGVmMzAwZDNiMGIzMmMwMzgzNGNlYTNhODNlMjQ1M2YwIiwib3duZXJfaWQiOiI2MzlmMjcxZmU1MTFjZDE4ODBjMmE0ZDhlYTRhNGYyNDBmYWYzMzY1YzYxYjY1YjQyNWZhYjVlMDIzMTcxM2MzIiwiYWxsb2NhdGlvbl9pZCI6IjkzN2FkNjlmYjIwZGMxMTFiY2ZkMDFkZTQyYzc5MmEwYzJiNDQxZGUzZDNjZjRjZGIzZjI1YzIxYzFhYjRiN2IiLCJmaWxlX3BhdGhfaGFzaCI6ImFkMThmMzg1Y2I2MWM4MTNjMzE0NDU2OTM0NWYxYzQ2ODE1ODljNzM0N2JkNzI4NjkyZTg1ZjFiNzM4NmI2OWQiLCJhY3R1YWxfZmlsZV9oYXNoIjoiIiwiZmlsZV9uYW1lIjoiZm9sZGVyMSIsInJlZmVyZW5jZV90eXBlIjoiZCIsImV4cGlyYXRpb24iOjE2MzYyODgwNDMsInRpbWVzdGFtcCI6MTYyODUxMjA0MywicmVfZW5jcnlwdGlvbl9rZXkiOiIiLCJlbmNyeXB0ZWQiOnRydWUsInNpZ25hdHVyZSI6ImNiYTZlMjA2OTBjOGZjZTk5YmFjZTMzYjFjMGY3ODQ5ZDE4YmJlMTdhODkyNjczODg1MjI2MDc3MGQzNzgzMGQifQ==\n```\n\nDecoded\n\n```\n{\"client_id\":\"b734ef935e2a02892b2fa31e3488b360ef300d3b0b32c03834cea3a83e2453f0\",\"owner_id\":\"639f271fe511cd1880c2a4d8ea4a4f240faf3365c61b65b425fab5e0231713c3\",\"allocation_id\":\"937ad69fb20dc111bcfd01de42c792a0c2b441de3d3cf4cdb3f25c21c1ab4b7b\",\"file_path_hash\":\"ad18f385cb61c813c3144569345f1c4681589c7347bd728692e85f1b7386b69d\",\"actual_file_hash\":\"\",\"file_name\":\"folder1\",\"reference_type\":\"d\",\"expiration\":1636288043,\"timestamp\":1628512043,\"re_encryption_key\":\"\",\"encrypted\":true,\"signature\":\"cba6e20690c8fce99bace33b1c0f7849d18bbe17a8926738852260770d37830d\"}\n```\n\nMake sure _\"reference_type\":\"d\"_ is \"d\" (directory)\n\nNow you able to download files inside this directory with same auth*ticket. To download it just point to excact file location in *--remotepath\\_ param:\n\n```\nzbox download --allocation 76ad9fa86f9b6685880553588a250586806ba5d7d20fc229d6905998be55d64a --localpath ~/file1.z --authticket $auth --remotepath /folder1/file1.z\n```\n\nThis method works for both: encrypted and non-encrypted files.\n\n##### share-encrypted revoke\n\nThis will cancel the share for particular buyer that was performed by the seller using zbox share. _Works only for files with --encrypted tag._\n\nUse clientid of the user that was share the remotepath.\nRequired parameters are allocation, remotepath and clientid.\n\nCommand\n\n    ./zbox share --revoke --allocation 3c0d32560ea18d9d0d76808216a9c634f661979d29ba59cc8dafccb3e5b95341 --remotepath /myfiles/hello.txt --clientid d52d82133177ec18505145e784bc87a0fb811d7ac82aa84ae6b013f96b93cfaa\n\nResponse\n\nReturns status message showing whether the operation was successful or not.\n\n#### List\n\nUse `list` command to list files in given remote path of the dStorage. An auth ticket should be provided when\nnot sent by the allocation's owner. Using an auth ticket requires a `lookuphash` to indicate the path for which to list\ncontents.\n\n| Parameter  | Required | Description                                                              | default | Valid values |\n| ---------- | -------- | ------------------------------------------------------------------------ | ------- | ------------ |\n| allocation | yes      | allocation id                                                            |         | string       |\n| authticket | no       | auth ticked if not owner of the allocation, use share to get auth ticket |         | sting        |\n| json       | no       | output the response in json format                                       | false   | boolean      |\n| lookuphash | no       | hash of object to list, use with auth ticket.                            |         | string       |\n| remotepath | no       | remote path of objects to list, for auth ticket use lookuphash instead   |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003elist\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124466241-5a005d80-dd8e-11eb-9122-30dbbd98d8e3.png)\n\n\u003c/details\u003e\n\nExample (for owner)\n\n```\n./zbox list --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc --remotepath /\n```\n\nExample (for non-owner with auth ticket)\n\n```\n./zbox list --allocation 39c41dcc1f3fd5154e92e6285dd18ed869b72662198839a862d8f1fa627ec256 --authticket eyJjbGllbnRfaWQiOiIiLCJvd25lcl9pZCI6ImJhNmFiNDI2NjQ0ZjJiMzI2YjFkYTNkZDQyNjIyOWZlZDE5ZWVkODUzODdkZWFmNzJlMDVjYjBmYTRjNWFiYmIiLCJhbGxvY2F0aW9uX2lkIjoiMzljNDFkY2MxZjNmZDUxNTRlOTJlNjI4NWRkMThlZDg2OWI3MjY2MjE5ODgzOWE4NjJkOGYxZmE2MjdlYzI1NiIsImZpbGVfcGF0aF9oYXNoIjoiNDIzYjRhZTE0Y2YxZWNhMDViYzg1M2E0ZmJiMWVmZGU5ZWU4NzJkYmQxM2M0M2RmZjY4MmVlMTI3ZWU4ZjQ1NyIsImFjdHVhbF9maWxlX2hhc2giOiIiLCJmaWxlX25hbWUiOiJmaWxlcyIsInJlZmVyZW5jZV90eXBlIjoiZCIsImV4cGlyYXRpb24iOjAsInRpbWVzdGFtcCI6MTcxNDY0MTcxNiwiZW5jcnlwdGVkIjpmYWxzZSwic2lnbmF0dXJlIjoiMTNhNzk0YTNjZTczZDFmNjE2ZmY3Njc0MjNhNzBlMzZlNDMwZWYyYTA1MWQyOGViZjQ1YTkzMjIzNjliNTMwYyJ9\n```\n\nExample Response:\n\n```\n  TYPE |  NAME  |     PATH      | SIZE | NUM BLOCKS | ACTUAL SIZE | ACTUAL NUM BLOCKS |                           LOOKUP HASH                            | IS ENCRYPTED  \n-------+--------+---------------+------+------------+-------------+-------------------+------------------------------------------------------------------+---------------\n  f    | one.js | /files/one.js |    5 |          1 |          19 |                 1 | 566669a0240db1ca5d48ab0e013f125faf3beb34f01ef065ffb31255d9e63f43 | NO            \n```\n\nResponse will be a list with information for each file/folder in the given path. **The information includes lookuphash which is require for download via authticket**.\n\n#### Copy\n\nUse `copy` command to copy file to another folder path in dStorage.\nOnly the owner of the allocation can copy an object.\n\n| Parameter  | Required | Description                                       | default | Valid values |\n| ---------- | -------- | ------------------------------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id                                     |         | string       |\n| remotepath | yes      | remote path of object to copy                     |         | string       |\n| destpath   | yes      | destination, an existing directory to copy object |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003ecopy\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124470632-c0d44580-dd93-11eb-89ba-f22081429616.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox copy --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac --remotepath\n```\n\nResponse:\n\n```\n/file.txt --destpath /existingFolder\n/file.txt copied\n```\n\n#### Move\n\nUse `move` command to move file to another remote folder path on dStorage.\nOnly the owner of the allocation can copy an object.\n\n| Parameter  | Required | Description                                       | default | Valid values |\n| ---------- | -------- | ------------------------------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id                                     |         | string       |\n| remotepath | yes      | remote path of object to copy                     |         | string       |\n| destpath   | yes      | destination, an existing directory to copy object |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003emove\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124471576-eca3fb00-dd94-11eb-8e52-441489c7cb55.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox move --allocation d0939e912851959637257573b08c748474f0dd0ebbc8e191e4f6ad69e4fdc7ac --remotepath\n```\n\nResponse:\n\n```\n/file.txt --destpath /existingFolder\n/file.txt moved\n```\n\n#### Get wallet\n\nUse `getwallet` command to get additional wallet information including Encryption\nPublic Key,Client ID which are required for Private File Sharing.\n\n| Parameter | Required | Description                   | default | Valid values |\n| --------- | -------- | ----------------------------- | ------- | ------------ |\n| json      | no       | print response in json format | false   | boolean      |\n\nExample\n\n```\n./zbox getwallet\n```\n\nResponse:\n\n```\n                                                             PUBLIC KEY                                                            |                             CLIENTID                             |            ENCRYPTION PUBLIC KEY\n+----------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------+----------------------------------------------+\n  3e7fa2dd6b924adfdf69e36cc61cb5d9012226dac619250ce5fc37eae25a05118008944d1727221b6d14b0998c5813acd13066040976598c5366e86519377001 | b6de562b57a0b593d0480624f79a55ed46dba544404595bee0273144e01034ae | 1JuT4AbQnmIaOMTuWn07t98xQRsSqXAxZYfwCI1yQLM=\n```\n\nResponse will give details for current selected wallet (or wallet file specified by optional --wallet parameter)\n\n#### Get Allocation Information\n\nUse `getallocation` command to get the information about the allocation such as total size , used size, number of challenges\nand challenges passed/failed/open/redeemed.\n\n| Parameter  | Required | Description                   | default | Valid values |\n| ---------- | -------- | ----------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id                 |         | string       |\n| blocks-per-marker | no       | print response in json format | 10   | int      |\n| json       | no       | print response in json format | false   | boolean      |\n\n\u003cdetails\u003e\n  \u003csummary\u003eget\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124476040-4f4bc580-dd9a-11eb-939c-464ffc6936db.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox getallocation --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc\n```\n\nResponse:\n\n```\nallocation:\n  id:              2813684263f6a28de4d1301255bba21c6cf9429cc02286b56ef38db7b068d8f1\n  tx:              2813684263f6a28de4d1301255bba21c6cf9429cc02286b56ef38db7b068d8f1 (latest create/update allocation transaction hash)\n  data_shards:     4\n  parity_shards:   2\n  size:            2.0 GiB\n  expiration_date: 2024-05-27 15:42:23 +0200 EET\n  third_party_extendable:       false\n  file_options:      00111111\n  write pool       1.000 ZCN\n  blobbers:\n  min_lock_demand: 0 %\n    - blobber_id:       6f895dfc20b5e55df6b3084eeb69ad604eb232e5853cf054983d7495bdbc9ed7\n      base URL:         https://dev1.zus.network/blobber02/\n      size:             512.0 MiB\n      min_lock_demand:  0 SAS\n      spent:            0 SAS (moved to challenge pool or to the blobber)\n      penalty:          0 SAS (blobber stake slash)\n      read_reward:      0 SAS\n      returned:         0 SAS (on challenge failed)\n      challenge_reward: 0 SAS (on challenge passed)\n      final_reward:     0 SAS (if finalized)\n      terms: (allocation related terms)\n        read_price:                0 SAS / GB (by 64KB chunks)\n        write_price:               10.000 mZCN / GB\n        min_lock_demand:           0 SAS %\n        max_offer_duration:        0s\n    - blobber_id:       98f14362f075caf467653044cf046eb9e8a5dfee88dc8b78cad1891748245003\n      base URL:         https://dev1.zus.network/blobber01/\n      size:             512.0 MiB\n      min_lock_demand:  0 SAS\n      spent:            0 SAS (moved to challenge pool or to the blobber)\n      penalty:          0 SAS (blobber stake slash)\n      read_reward:      0 SAS\n      returned:         0 SAS (on challenge failed)\n      challenge_reward: 0 SAS (on challenge passed)\n      final_reward:     0 SAS (if finalized)\n      terms: (allocation related terms)\n        read_price:                0 SAS / GB (by 64KB chunks)\n        write_price:               10.000 mZCN / GB\n        min_lock_demand:           0 SAS %\n        max_offer_duration:        0s\n    - blobber_id:       0e2fa9abc5a14231a1e7dc27b129480b732222e8e864d3b4e62d60a8b8ae617b\n      base URL:         https://dev2.zus.network/blobber02/\n      size:             512.0 MiB\n      min_lock_demand:  0 SAS\n      spent:            0 SAS (moved to challenge pool or to the blobber)\n      penalty:          0 SAS (blobber stake slash)\n      read_reward:      0 SAS\n      returned:         0 SAS (on challenge failed)\n      challenge_reward: 0 SAS (on challenge passed)\n      final_reward:     0 SAS (if finalized)\n      terms: (allocation related terms)\n        read_price:                0 SAS / GB (by 64KB chunks)\n        write_price:               10.000 mZCN / GB\n        min_lock_demand:           0 SAS %\n        max_offer_duration:        0s\n    - blobber_id:       06166f3dfd72a90cd0b51f4bd7520d4434552fc72880039b1ee1e8fe4b3cd7ea\n      base URL:         https://dev2.zus.network/blobber01/\n      size:             512.0 MiB\n      min_lock_demand:  0 SAS\n      spent:            0 SAS (moved to challenge pool or to the blobber)\n      penalty:          0 SAS (blobber stake slash)\n      read_reward:      0 SAS\n      returned:         0 SAS (on challenge failed)\n      challenge_reward: 0 SAS (on challenge passed)\n      final_reward:     0 SAS (if finalized)\n      terms: (allocation related terms)\n        read_price:                0 SAS / GB (by 64KB chunks)\n        write_price:               10.000 mZCN / GB\n        min_lock_demand:           0 SAS %\n        max_offer_duration:        0s\n    - blobber_id:       5c61f8d3e63528dfe45db89a598bd5c42c71b3994f7639d4647268ba75269d9a\n      base URL:         https://dev3.zus.network/blobber02/\n      size:             512.0 MiB\n      min_lock_demand:  0 SAS\n      spent:            0 SAS (moved to challenge pool or to the blobber)\n      penalty:          0 SAS (blobber stake slash)\n      read_reward:      0 SAS\n      returned:         0 SAS (on challenge failed)\n      challenge_reward: 0 SAS (on challenge passed)\n      final_reward:     0 SAS (if finalized)\n      terms: (allocation related terms)\n        read_price:                0 SAS / GB (by 64KB chunks)\n        write_price:               10.000 mZCN / GB\n        min_lock_demand:           0 SAS %\n        max_offer_duration:        0s\n    - blobber_id:       8d19a8fd7147279d1dfdadd7e3ceecaf91c63ad940dae78731e7a64b104441a6\n      base URL:         https://dev3.zus.network/blobber01/\n      size:             512.0 MiB\n      min_lock_demand:  0 SAS\n      spent:            0 SAS (moved to challenge pool or to the blobber)\n      penalty:          0 SAS (blobber stake slash)\n      read_reward:      0 SAS\n      returned:         0 SAS (on challenge failed)\n      challenge_reward: 0 SAS (on challenge passed)\n      final_reward:     0 SAS (if finalized)\n      terms: (allocation related terms)\n        read_price:                0 SAS / GB (by 64KB chunks)\n        write_price:               10.000 mZCN / GB\n        min_lock_demand:           0 SAS %\n        max_offer_duration:        0s\n  read_price_range:          0 SAS-0 SAS (requested)\n  write_price_range:         0 SAS-25.000 mZCN (requested)\n  challenge_completion_time: 0s (max)\n  start_time:                2024-04-27 15:42:23 +0200 EET\n  finalized:                 false\n  canceled:                  false\n  moved_to_challenge:        0 SAS\n  moved_back:                0 SAS\n  moved_to_validators:       0 SAS\n  stats:\n    total size:              2.0 GiB\n    used size:               0 B\n    number of writes:        0\n    total challenges:        0\n    passed challenges:       0\n    failed challenges:       0\n    open challenges:         0\n    last challenge redeemed: \n  price:\n    time_unit:   720h0m0s\n    read_price:  0 SAS / GB (by 64KB)\n    write_price: 15.000 mZCN / GB / 720h0m0s\n```\n\n#### Get metadata\n\nUse `meta` command to get metadata for a given remote file. Use must either be the\nowner of the allocation on have an auth ticket or be a collaborator.\nUse [share](#share) to create an auth ticket for someone or [add-collab](#add-collaborator)\nto add a user as a collaborator. To indicate the object use `remotepath` or\n`lookuphash` with an auth ticket.\n\n| Parameter  | Required | Description                                        | default | Valid values |\n| ---------- | -------- | -------------------------------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id                                      |         | string       |\n| authticket | no       | auth ticked if not owner of the allocation         |         | string       |\n| json       | no       | print result in json format                        | false   | boolean      |\n| lookuphash | no       | hash of object, use with auth ticket               |         | string       |\n| remotepath | no       | remote path of objecte, do not use with authticket |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003emeta\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124484414-4c090780-dda3-11eb-818c-d95477618cfd.png)\n\n\u003c/details\u003e\n\n**Without any authticket**\n\n```\n./zbox meta --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc --remotepath /1.txt\n```\n\nResponse:\n\n```\n  TYPE | NAME  |  PATH  |                           LOOKUP HASH                            | SIZE |        MIME TYPE         |                   HASH\n+------+-------+--------+------------------------------------------------------------------+------+--------------------------+------------------------------------------+\n  f    | 1.txt | /1.txt | 20dc798b04ebab3015817c85d22aea64a52305bad6f7449acd3828c8d70c76a3 |    4 | application/octet-stream | 03cfd743661f07975fa2f1220c5194cbaff48451\n```\n\n**With authticket**\n\n```\n./zbox meta --lookuphash 20dc798b04ebab3015817c85d22aea64a52305bad6f7449acd3828c8d70c76a3 --authticket eyJjbGllbnRfaWQiOiJiNmRlNTYyYjU3YTBiNTkzZDA0ODA2MjRmNzlhNTVlZDQ2ZGJhNTQ0NDA0NTk1YmVlMDI3MzE0NGUwMTAzNGFlIiwib3duZXJfaWQiOiJiNmRlNTYyYjU3YTBiNTkzZDA0ODA2MjRmNzlhNTVlZDQ2ZGJhNTQ0NDA0NTk1YmVlMDI3MzE0NGUwMTAzNGFlIiwiYWxsb2NhdGlvbl9pZCI6Ijg2OTViOWU3Zjk4NmQ0YTQ0N2I2NGRlMDIwYmE4NmY1M2IzYjVlMmM0NDJhYmNlYjZjZDY1NzQyNzAyMDY3ZGMiLCJmaWxlX3BhdGhfaGFzaCI6IjIwZGM3OThiMDRlYmFiMzAxNTgxN2M4NWQyMmFlYTY0YTUyMzA1YmFkNmY3NDQ5YWNkMzgyOGM4ZDcwYzc2YTMiLCJmaWxlX25hbWUiOiIxLnR4dCIsInJlZmVyZW5jZV90eXBlIjoiZiIsImV4cGlyYXRpb24iOjE2MjY0MjA1NzQsInRpbWVzdGFtcCI6MTYxODY0NDU3NCwicmVfZW5jcnlwdGlvbl9rZXkiOiJ7XCJyMVwiOlwiOUpnci9aVDh6VnpyME1BcWFidlczdnhoWEZoVkdMSGpzcVZtVUQ1QTJEOD1cIixcInIyXCI6XCIrVEk2Z1pST3JCR3ZURG9BNFlicmNWNXpoSjJ4a0I4VU5SNTlRckwrNUhZPVwiLFwicjNcIjpcInhySjR3bENuMWhqK2Q3RXU5TXNJRzVhNnEzRXVzSlZ4a2N6YXN1K0VqQW89XCJ9Iiwic2lnbmF0dXJlIjoiZTk3NTYyOTAyODU4OTBhY2QwYTcyMzljNTFhZjc0YThmNjU2OTFjOTUwMzRjOWM0ZDJlMTFkMTQ0MTk0NmExYSJ9\n\n```\n\nResponse:\n\n```\nTYPE | NAME  |                           LOOKUP HASH                            | SIZE |        MIME TYPE         |                   HASH\n+------+-------+------------------------------------------------------------------+------+--------------------------+------------------------------------------+\n  f    | 1.txt | 20dc798b04ebab3015817c85d22aea64a52305bad6f7449acd3828c8d70c76a3 |    4 | application/octet-stream | 03cfd743661f07975fa2f1220c5194cbaff48451\n```\n\nResponse will be metadata for the given filepath/lookuphash (if using authTicket)\n\n**For a directory**\n\n```\n./zbox meta --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc --remotepath /files\n```\n\nResponse:\n\n```\n  TYPE | NAME  |  PATH  |                           LOOKUP HASH                             \n-------+-------+--------+-------------------------------------------------------------------\n  d    | files | /files | 9184e5f2634bd7b2cdaec97de9c3eb8f60192640d5e6f32bb3271f094ef7cc7a  \n```\n\n#### Rename\n\n`rename` command renames a file existing already on dStorage. Only the\nallocation's owner can rename a file.\n\n| Parameter  | Required | Description                                       | default | Valid values |\n| ---------- | -------- | ------------------------------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id                                     |         | string       |\n| destname   | yes      | new neame of the object                           |         | string       |\n| remotepath | yes      | remote path of object, do not use with authticket |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003erename\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124487119-3ea14c80-dda6-11eb-93df-1e084653f212.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox rename --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc --remotepath /1.txt --destname x.txt\n```\n\nResponse:\n\n```\n/1.txt renamed\n```\n\n#### Stats\n\n`stats` command gets upload, download and challenge statistics for a file.\nOnly the owner can get a files stats.\n\n| Parameter  | Required | Description                 | default | Valid values |\n| ---------- | -------- | --------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id               |         | string       |\n| json       | no       | print result in json format | false   | boolean      |\n| remotepath | yes      | file of which to get stats  |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003estats\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124490093-9beacd00-dda9-11eb-8673-cf8a53475aec.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox stats --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc --remotepath /1.txt\n```\n\nResponse:\n\n```\n                              BLOBBER                              | NAME  |  PATH  | SIZE | UPLOADS | BLOCK DOWNLOADS | CHALLENGES | BLOCKCHAIN AWARE\n+------------------------------------------------------------------+-------+--------+------+---------+-----------------+------------+------------------+\n  9c14598d5d39cb27177add6efabdadfb0a0478abe5d471ffe9080751dc89321c | 1.txt | /1.txt | 2065 |       3 |               1 |          0 | true\n  dea18e3f3c308666cb489877b9b2c7e2babf797d8b8c322fa9d074105787a9e9 | 1.txt | /1.txt | 2065 |       3 |               1 |          0 | true\n  0ece681f6b00221c5567865b56040eaab23795a843ed629ce71fb340a5566ba3 | 1.txt | /1.txt | 2065 |       3 |               1 |          0 | true\n  788b1deced159f12d3810c61b4b8d381e80188c470e9798939f2e5036d964ffc | 1.txt | /1.txt | 2065 |       3 |               1 |          0 | true\n  78a1a9db859cded21a5120a5bf808e97202a1fd7f94e51d2fd174edbdc4d7291 | 1.txt | /1.txt | 2065 |       3 |               1 |          0 | true\n  876b4cd610eb1aac63c53cdfd4d3a0ac91d94f2d6b858bb195f72b6dc0f33b55 | 1.txt | /1.txt | 2065 |       3 |               1 |          0 | true\n```\n\n#### Repair\n\nUse `start-repair` command to repair an allocation. Sometimes, your operations on the allocation files may not be successful on some blobbers (since the consensus of the operations is `data_shards + 1`) leading to incosistency of the allocation data on its hosting blobbers. In such cases, you can use the repair command to repair the allocation. The repair command will repair the allocation by downloading the files from the blobbers with the latest version and re-uploading them to the blobbers that failed before. The repair command will also update the allocation metadata on the blobbers. Only the owner of the allocation can repair the allocation.\n![repair](https://user-images.githubusercontent.com/65766301/120052600-b364c680-c043-11eb-9bf2-038ab244fed6.png)\n\\\n\n| Parameter  | Required | Description               | default | Valid values |\n| ---------- | -------- | ------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id             |         | string       |\n| repairpath | yes      | remote path to repair     |         | string       |\n| rootpath   | yes      | file path for local files |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003estart-repair\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127882066-83d7e641-56a7-4ae1-bbf1-547ca389481c.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox start-repair --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc --repairpath / --rootpath /home/dung/Desktop/alloc\n```\n\nResponse:\n\n```\nRepair file completed, Total files repaired:  0\n```\n\n#### Decrypt\n\n`decrypt` is used to decrypt data with a passphrase\n\n| Parameter | Required | Description    | default | Valid values |\n| --------- | -------- | -------------- | ------- | ------------ |\n| text      | yes      | string to decrypt |         | string       |\n| passphrase      | yes      | passphrase to use to decrypt |         | string       |\n\n```sh\n./zbox decrypt --text {encryted_data} --passphrase {passphrase}\n```\n\n#### Sign data\n\n`sign-data` uses the information from your wallet to sign the input data string\n\n| Parameter | Required | Description    | default | Valid values |\n| --------- | -------- | -------------- | ------- | ------------ |\n| data      | yes      | string to sign |         | string       |\n\n```sh\n./zbox sign-data \"data to sign\"\nSignature : 9432ab2ee602062afaf48c4016b373a65db48a8546a81c09dead40e54966399e\n```\n\n### Lock and Unlock Tokens\n\n#### Challenge pool information\n\nUse `cp-info` command to get the challenge pool brief information.\n\n| Parameter  | Required | Description                 | default | Valid values |\n| ---------- | -------- | --------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id               |         | string       |\n| json       | no       | print result in json format | false   | boolean      |\n\n\u003cdetails\u003e\n  \u003csummary\u003ecp-info\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124506637-fe50c700-ddc3-11eb-9e8e-f59f88c89b6c.png)\n\n\u003c/details\u003e\n\nExample\n\n```\n./zbox cp-info --allocation 8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc\n```\n\nResponse:\n\n```\nPOOL ID: 6dba10422e368813802877a85039d3985d96760ed844092319743fb3a76712d7:challengepool:8695b9e7f986d4a447b64de020ba86f53b3b5e2c442abceb6cd65742702067dc\n    BALANCE    |             START             |            EXPIRE             | FINIALIZED\n+--------------+-------------------------------+-------------------------------+------------+\n  0.0000002796 | 2021-04-17 00:27:23 +0700 +07 | 2021-05-24 00:29:23 +0700 +07 | false\n```\n\nBalance is the current challenge pool balance. Start,Expire time and the finalization are allocations related.\n\n#### Create read pool\n\nUse `rp-create` to create a read pool, `rp-create` has no parameters.\n\n\u003cdetails\u003e\n  \u003csummary\u003erp-create\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/127875827-f0301162-5c62-4964-989a-d56d4b2292af.png)\n\n\u003c/details\u003e\n\n```\n./zbox rp-create\n```\n\n#### Collect rewards\n\nUse `collect-reward` to transfer reward tokens from a stake pool in which you have\ninvested to your wallet.\n\nYou earn rewards for:\n\nBlobbers\n\n- File space used by allocation owners and associates.\n- A min lock demand for each allocation.\n- Block rewards. Each block a reward gets paid out to blobber stakeholders in the form of a random lottery.\n\nValidators\n- Payment for validating blobber challenge responses.\n\nThe stake pool keeps an account for all stakeholders to maintain accrued rewards.\nThese rewards can be accessed using this `collect-reward` command.\n\n| Parameter     | Required | Description          | default | Valid values |\n| ------------- | -------- | -------------------- | ------- | ------------ |\n| provider_type | no       | blobber or validator | blobber | \"blobber\" \\| \"validator\"     |\n| provider_id   | no       | id of blobber or validator |   | string       |\n\n```bash\n./zbox collect-reward --provider_type blobber\n```\n\n#### Read pool info\n\nUse `rp-info` to get read pool information.\n\n| Parameter | Required | Description                 | default | Valid values |\n| --------- | -------- | --------------------------- | ------- | ------------ |\n| json      | no       | print result in json format | false   | boolean      |\n\n\u003cdetails\u003e\n  \u003csummary\u003erp-info\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124507524-d8c4bd00-ddc5-11eb-853e-513957cf3dbb.png)\n\n\u003c/details\u003e\n\n```\n./zbox rp-info\n```\n\n#### Lock tokens into read pool\n\nLock some tokens in read pool. ReadPool is not linked to specific allocations anymore.\nEach wallet has a singular, non-expiring, untethered ReadPool. Locked tokens in ReadPool can be unlocked at any time and returned to the original wallet balance.\n\n- If the user does not have a pre-existing read pool, then the smart-contract\n  creates one.\n\nLocked tokens can be used to pay for read access to file(s) stored with different allocations.\nTo use these tokens the user must be the allocation owner, collaborator or have an auth ticket.\n\n| Parameter | Required | Description     | default | Valid values |\n| --------- | -------- | --------------- | ------- | ------------ |\n| fee       |          | transaction fee | 0       | int          |\n| tokens    | yes      | tokens to lock  |         | int          |\n\n```\n./zbox rp-lock --tokens 1\n```\n\n#### Unlock tokens from read pool\n\nUse `rp-unlock` to unlock tokens from `read pool by ownership.\n\n| Parameter | Required | Description     | default | Valid values |\n| --------- | -------- | --------------- | ------- | ------------ |\n| fee       | no       | transaction fee | 0       | float        |\n\nUnlocked tokens get returned to the original wallet balance.\n\n#### Storage SC configurations\n\nUse `sc-config` to show storage SC configuration.\n\n| Parameter  | Required | Description                 | default | Valid values |\n| ---------- | -------- | --------------------------- | ------- | ------------ |\n| json       | no       | print result in json format | false   | boolean      |\n\n\u003cdetails\u003e\n  \u003csummary\u003esc-config\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124578670-53352180-de46-11eb-99a5-07debf17e351.png)\n\n\u003c/details\u003e\n\n```sh\n./zbox sc-config\n```\n\n```sh\n{\"blobber_slash\":\"0.1\",\"block_reward.block_reward\":\"0.0063\",\"block_reward.gamma.a\":\"10\",\"block_reward.gamma.alpha\":\"0.2\",\"block_reward.gamma.b\":\"9\",\"block_reward.qualifying_stake\":\"1\",\"block_reward.zeta.i\":\"1\",\"block_reward.zeta.k\":\"0.9\",\"block_reward.zeta.mu\":\"0.2\",\"cancellation_charge\":\"0.2\",\"challenge_enabled\":\"true\",\"challenge_generation_gap\":\"1\",\"cost.add_blobber\":\"266\",\"cost.add_free_storage_assigner\":\"124\",\"cost.add_validator\":\"348\",\"cost.blobber_health_check\":\"97\",\"cost.cancel_allocation\":\"1163\",\"cost.challenge_response\":\"728\",\"cost.collect_reward\":\"181\",\"cost.commit_connection\":\"743\",\"cost.commit_settings_changes\":\"56\",\"cost.finalize_allocation\":\"1091\",\"cost.free_allocation_request\":\"2132\",\"cost.generate_challenge\":\"600\",\"cost.kill_blobber\":\"651\",\"cost.kill_validator\":\"277\",\"cost.new_allocation_request\":\"1919\",\"cost.pay_blobber_block_rewards\":\"100\",\"cost.read_pool_lock\":\"170\",\"cost.read_pool_unlock\":\"104\",\"cost.read_redeem\":\"664\",\"cost.shutdown_blobber\":\"597\",\"cost.shutdown_validator\":\"227\",\"cost.stake_pool_lock\":\"187\",\"cost.stake_pool_unlock\":\"119\",\"cost.update_allocation_request\":\"2692\",\"cost.update_blobber_settings\":\"338\",\"cost.update_settings\":\"143\",\"cost.update_validator_settings\":\"247\",\"cost.write_pool_lock\":\"186\",\"free_allocation_settings.data_shards\":\"4\",\"free_allocation_settings.parity_shards\":\"2\",\"free_allocation_settings.read_pool_fraction\":\"0\",\"free_allocation_settings.read_price_range.max\":\"0\",\"free_allocation_settings.read_price_range.min\":\"0\",\"free_allocation_settings.size\":\"2147483648\",\"free_allocation_settings.write_price_range.max\":\"0.025\",\"free_allocation_settings.write_price_range.min\":\"0\",\"health_check_period\":\"1h30m0s\",\"max_blobber_select_for_challenge\":\"5\",\"max_blobbers_per_allocation\":\"30\",\"max_challenge_completion_rounds\":\"1200\",\"max_charge\":\"0.5\",\"max_delegates\":\"100\",\"max_file_size\":\"549755813888\",\"max_individual_free_allocation\":\"1\",\"max_read_price\":\"0\",\"max_stake\":\"2e+06\",\"max_total_free_allocation\":\"1e+07\",\"max_write_price\":\"0.025\",\"min_alloc_size\":\"1073741824\",\"min_blobber_capacity\":\"10737418240\",\"min_stake\":\"1\",\"min_stake_per_delegate\":\"10\",\"min_write_price\":\"0.001\",\"num_validators_rewarded\":\"10\",\"owner_id\":\"1746b06bb09f55ee01b33b5e2e055d6cc7a900cb57c0a3a5eaabb8a0e7745802\",\"readpool.min_lock\":\"0\",\"stakepool.kill_slash\":\"0.5\",\"stakepool.min_lock_period\":\"0s\",\"time_unit\":\"8760h0m0s\",\"validator_reward\":\"0.025\",\"validators_per_challenge\":\"2\",\"writepool.min_lock\":\"0.1\"}\n```\n\n#### Stake pool info\n\nUse `sp-info` to get your stake pool information and settings.\n\n| Parameter  | Required | Description                 | default        | Valid values |\n| ---------- | -------- | --------------------------- | -------------- | ------------ |\n| blobber_id |          | id of blobber               |  | string       |\n| authorizer_id |          | id of authorizer               |  | string       |\n| miner_id |          | id of miner               |  | string       |\n| sharder_id |          | id of sharder               |  | string       |\n| validator_id |          | id of validator               |  | string       |\n| json       | no       | print result in json format | false          | boolean      |\n \\* - one of the above ids is required\n\n\u003cdetails\u003e\n  \u003csummary\u003esp-info\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124581849-63023500-de49-11eb-8927-50d9ff97671b.png)\n\n\u003c/details\u003e\n\n```\n./zbox sp-info --blobber_id \u003cblobber_id\u003e\n```\nSample Response : \n\n```sh\npool id:            98f14362f075caf467653044cf046eb9e8a5dfee88dc8b78cad1891748245003\nbalance:            12.000 ZCN\ntotal stake:        12.000 ZCN\nunclaimed rewards:  0 SAS\ntotal rewards:      0 SAS\ndelegate_pools:\n- id:                ba6ab426644f2b326b1da3dd426229fed19eed85387deaf72e05cb0fa4c5abbb\n  balance:           12.000 ZCN\n  delegate_id:       ba6ab426644f2b326b1da3dd426229fed19eed85387deaf72e05cb0fa4c5abbb\n  unclaimed reward:  0 SAS\n  total_reward:      0 SAS\n  total_penalty:     0 SAS\n  status:            active\n  round_created:     2074\n  unstake:           false\n  staked_at:         2024-04-27 16:29:47 +0200 EET\nsettings:\n  delegate_wallet:   fdaa2b74e666a3f609ea714a649d44edd9c46ff468e094b797e1811c533d0b2b\n  num_delegates:     50\n``` \n\n#### Lock tokens into stake pool\n\nLock creates delegate pool for current client and a given provider (blobber or validator).\nThe tokens locked for the provider stake can be unlocked any time, excluding times\nwhen the tokens held by opened offers. These tokens will earn rewards depending on the\nactions of the linked provider.\n\n`sp-lock` returns the id of the new stake pool, this will be needed to reference\nto stake pool later.\n\n| Parameter    | Required | Description     | default | Valid values |\n| ------------ | -------- | --------------- | ------- | ------------ |\n| blobber_id   |          | id of blobber   | n/a     | string       |\n| validator_id |          | id of validator | n/a     | string       |\n| miner_id     |          | id of miner     | n/a     | string       |\n| sharder_id   |          | id of blobber   | n/a     | string       |\n| authorizer_id|          | id of authorizer| n/a     | string       |\n| fee          | no       | transaction fee | 0       | float        |\n| tokens       | yes      | tokens to lock  |         | float        |\n\n\u003cdetails\u003e\n  \u003csummary\u003esp-lock\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124585686-73b4aa00-de4d-11eb-83cb-334f7c54543e.png)\n\n\u003c/details\u003e\n\nTo stake tokens for blobbers:\n\n```\n./zbox sp-lock --blobber_id \u003cblobber_id\u003e --tokens 1.0\n```\n\nTo stake tokens for validators:\n\n```\n./zbox sp-lock --validator_id \u003cvalidator_id\u003e --tokens 1.0\n```\n\n#### Unlock tokens from stake pool\n\nUnlock a stake pool by pool owner. This tag prevents the stake pool affecting\nblobber allocation for any new allocations.\n\n| Parameter    | Required | Description     | default | Valid values |\n| ------------ | -------- | --------------- | ------- | ------------ |\n| blobber_id   |          | id of blobber   | n/a     | string       |\n| validator_id |          | id of validator | n/a     | string       |\n| miner_id     |          | id of miner     | n/a     | string       |\n| sharder_id   |          | id of blobber   | n/a     | string       |\n| authorizer_id|          | id of authorizer| n/a     | string       |\n| fee          | no       | transaction fee | 0       | float        |\n\n\u003cdetails\u003e\n  \u003csummary\u003esp-unlock\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124597566-8e8e1b00-de5b-11eb-8926-867687aaa06a.png)\n\n\u003c/details\u003e\n\nTo unstake blobber tokens:\n\n```\n./zbox sp-unlock --blobber_id \u003cblobber_id\u003e\n```\n\nTo unstake validator tokens:\n\n```\n./zbox sp-unlock --validator_id \u003cvalidator_id\u003e --pool_id \u003cpool_id\u003e\n```\n\nSame for the other providers.\n\n#### Stake pools info of user\n\nGet information about all stake pools of current user.\n\n| Parameter | Required | Description                 | default | Valid values |\n| --------- | -------- | --------------------------- | ------- | ------------ |\n| all       | no       | get all the pools           | false   | boolean      |\n| client_id | no       | client_id of the user |     | string      |\n| limit     | no       | limit the number of records returned | 20   | int      |\n| offset    | no       | skip the number of rows before beginning |     | int      |\n| json      | no       | print result in json format | false   | boolean      |\n\n\u003cdetails\u003e\n  \u003csummary\u003esp-user-info\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124600324-7ff53300-de5e-11eb-9b78-5a4f9c59a536.png)\n\n\u003c/details\u003e\n\n```\n./zbox sp-user-info\n```\n\nSample Response : \n\n```\n- blobber_id:  98f14362f075caf467653044cf046eb9e8a5dfee88dc8b78cad1891748245003\n  - id:                ba6ab426644f2b326b1da3dd426229fed19eed85387deaf72e05cb0fa4c5abbb\n    balance:           12.000 ZCN\n    delegate_id:       ba6ab426644f2b326b1da3dd426229fed19eed85387deaf72e05cb0fa4c5abbb\n    unclaimed reward:        0 SAS\n    total rewards:           0 SAS\n    total penalty:           0 SAS\n    status:           active\n    round_created:    2074\n    unstake:          false\n    staked_at:        2024-04-27 16:29:47 +0200 EET\n```\n\n#### Lock tokens into write pool\n\n`wp-lock` can be used to lock tokens in a write pool associated with an allocation.\nAll tokens will be divided between allocation blobbers depending on their write price.\n\n- Uses two different formats, you can either define a specific blobber\n  to lock all tokens, or spread across all the allocations blobbers automatically.\n- If the user does not have a pre-existing read pool, then the smart-contract\n  creates one.\n\nAnyone can lock tokens with a write pool attached to an allocation. These tokens can\nbe used to pay for the allocation updates and min lock demand as needed. Any tokens\nmoved into the challenge pool to underwrite blobbers' min lock demands return to the\nallocation's owner on closing the allocation either by cancelation or expiry.\n\n| Parameter     | Required | Description                       | default | Valid values |\n| ------------- | -------- | --------------------------------- | ------- | ------------ |\n| allocation    | no       | allocation id                     |         | string       |\n| fee           | no       | transaction fee                   | 0       | float        |\n| tokens        | yes      | number of tokens to lock          |         | float        |\n\n\u003cdetails\u003e\n  \u003csummary\u003ewp-lock with a specific blobber\u003c/summary\u003e\n\n```shell\n./zbox wp-lock --allocation \u003callocation_id\u003e --tokens 1\n```\n\n![image](https://user-images.githubusercontent.com/6240686/123988183-b4c93c00-d9bf-11eb-825c-9a5849fedbbf.png)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ewp-lock spread across all blobbers\u003c/summary\u003e\n\n```shell\n./zbox wp-lock --allocation \u003callocation_id\u003e --tokens 1\n```\n\n![image](https://user-images.githubusercontent.com/6240686/123979735-e5f23e00-d9b8-11eb-8232-339a4a3374d0.png)\n\n\u003c/details\u003e\n\n\n#### Unlock tokens from write pool\n\n`wp-unlock` unlocks an expired write pool.\nAn expired write pool, associated with an allocation, can be locked until allocation finalization even if it's expired. It possible in cases where related blobber doesn't give their min lock demands. The finalization will pay the demand and unlock the pool.\n\n| Parameter | Required | Description     | default | Valid values |\n| --------- | -------- | --------------- | ------- | ------------ |\n| allocation    | no       | allocation id                     |         | string       |\n| fee       | no       | transaction fee | 0       | float        |\n\n\u003cdetails\u003e\n  \u003csummary\u003ewp-unlock\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/123980742-b09a2000-d9b9-11eb-8987-c18ff90ee705.png)\n\n\u003c/details\u003e\n\n```\n./zbox wp-unlock --allocation \u003callocation_id\u003e\n```\n\n#### Download cost\n\n`get-download-cost` determines the cost for downloading the remote file from dStorage. The client must be an\nowner, collaborator, or using an auth ticket to determine the download cost of the file.\n\n| Parameter  | Required | Description                               | default | Valid values |\n| ---------- | -------- | ----------------------------------------- | ------- | ------------ |\n| allocation | yes      | allocation id                             |         | string       |\n| authticket | no       | auth ticket to use if not the owner       |         | string       |\n| blocks-per-marker | no       | blocks signed per Read Marker       |    10     | int       |\n| lookuphash | no       | hash of remote file, use with auth ticket |         | string       |\n| remotepath | no       | file of which to get stats, use if owner  |         | string       |\n\n\u003cdetails\u003e\n  \u003csummary\u003eget-download-cost\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124497750-41ef0500-ddb3-11eb-99ea-115a4e234eda.png)\n\n\u003c/details\u003e\n\nCommand:\n```\n./zbox get-download-cost --allocation \u003callocation_id\u003e --remotepath /path/file.ext\n```\nResponse:\n```\n0.0000107434 tokens for 10 64KB blocks (24 B) of \u003cremote_path_of_file\u003e .\n```\n\n#### Upload cost\n\n`get-upload-cost` determines the cost for uploading a local file on dStorage.\n`--duration` Ignored if `--end` true, in which case the cost of upload calculated until\nthe allocation expires.\n\n| Parameter  | Required | Description                          | default | Valid values |\n| ---------- | -------- | ------------------------------------ | ------- | ------------ |\n| allocation | yes      | allocation id                        |         | string       |\n| duration   | no       | duration for which to upload file    |         | duration     |\n| end        | no       | upload file until allocation expires | false   | boolean      |\n| localpath  | yes      | local of path to calculate upload    |         | file path    |\n\n\u003cdetails\u003e\n  \u003csummary\u003eget-upload-cost\u003c/summary\u003e\n\n![image](https://user-images.githubusercontent.com/6240686/124501898-51be1780-ddba-11eb-8c1a-d238cfd8f43f.png)\n\n\u003c/details\u003e\n\nCommand:\n\n```\n./zbox get-upload-cost --allocation \u003callocation_id\u003e --localpath ./path/file.ext\n```\n\nResponse:\n\n```\n 0.0000000028 tokens / 720h0m0s for 24 B of \u003cremote_path_of_file\u003e\n```\n\n## Config\n\n### ~/.zcn/config.yaml\n\n`~/.zcn/config.yaml` is a required `zboxcli` config.\n\n| Field                       | Description                                                  | Value type |\n| --------------------------- | ------------------------------------------------------------ | ---------- |\n| `block_worker`              | The URL to chain network DNS that provides the lists of miners and sharders | string     |\n| `signature_scheme`          | The signature scheme used in the network. This would be `bls0chain` for most networks | string     |\n| `min_submit`                | The desired minimum success ratio (in percent) to meet when submitting transactions to miners | integer    |\n| `min_confirmation`          | The desired minimum success ratio (in percent) to meet when verifying transactions on sharders | integer    |\n| `confirmation_chain_length` | The desired chain length to meet when verifying transactions | integer    |\n\n### Override Network\n\nNetwork nodes are automatically discovered using the `block_worker` provided on [config file](https://github.com/0chain/zwalletcli/blob/staging/network/config.yaml).\n\nTo override/limit the nodes used on `zbox`, create `~/.zcn/network.yaml` as shown below.\n\n```sh\ncat \u003e ~/.zcn/network.yaml \u003c\u003c EOF\nminers:\n  - http://demo1.zus.network:31201\n  - http://demo1.zus.network:31202\n  - http://demo1.zus.network:31203\nsharders:\n  - http://demo1.zus.network:31101\nEOF\n```\n\nOverriding the nodes can be useful in local chain setup. In some cases, the block worker might return URLs with IP/alias only accessible within the docker network.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0chain%2Fzboxcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0chain%2Fzboxcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0chain%2Fzboxcli/lists"}