{"id":36549481,"url":"https://github.com/companyzero/zkc","last_synced_at":"2026-01-12T06:31:02.604Z","repository":{"id":54394237,"uuid":"75649671","full_name":"companyzero/zkc","owner":"companyzero","description":"zero-knowledge chat suite","archived":false,"fork":false,"pushed_at":"2022-02-04T19:07:24.000Z","size":433,"stargazers_count":102,"open_issues_count":23,"forks_count":24,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-08-14T02:59:29.515Z","etag":null,"topics":["chat","encryption","go","golang","zero-knowledge"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/companyzero.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}},"created_at":"2016-12-05T17:29:23.000Z","updated_at":"2025-02-14T05:59:19.000Z","dependencies_parsed_at":"2022-08-13T14:20:36.712Z","dependency_job_id":null,"html_url":"https://github.com/companyzero/zkc","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/companyzero/zkc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/companyzero%2Fzkc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/companyzero%2Fzkc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/companyzero%2Fzkc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/companyzero%2Fzkc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/companyzero","download_url":"https://codeload.github.com/companyzero/zkc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/companyzero%2Fzkc/sbom","scorecard":{"id":301214,"data":{"date":"2025-08-11","repo":{"name":"github.com/companyzero/zkc","commit":"f7c967e52aa4f6a5dd80fb74b8592c4c8486c02d"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.6,"checks":[{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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":"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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"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":["Warn: no topLevel permission defined: .github/workflows/go.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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/companyzero/zkc/go.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/go.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/companyzero/zkc/go.yml/master?enable=pin","Warn: downloadThenRun not pinned by hash: .github/workflows/go.yml:19","Info:   0 out of   2 GitHub-owned GitHubAction 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":"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":"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":"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: ISC License: LICENSE:0"],"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":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: zkc-manifest-v0.4.1.txt.asc: https://github.com/companyzero/zkc/releases/tag/v0.4.1","Info: signed release artifact: zkc-manifest-v0.3.1.txt.asc: https://github.com/companyzero/zkc/releases/tag/v0.3.1","Info: signed release artifact: manifest-v0.3.0.txt.asc: https://github.com/companyzero/zkc/releases/tag/v0.3.0","Info: signed release artifact: zkc-manifest-v0.2.0.txt.asc: https://github.com/companyzero/zkc/releases/tag/v0.2.0","Info: signed release artifact: manifest-v0.1.1.txt.asc: https://github.com/companyzero/zkc/releases/tag/v0.1.1","Warn: release artifact v0.4.1 does not have provenance: https://api.github.com/repos/companyzero/zkc/releases/20358691","Warn: release artifact v0.3.1 does not have provenance: https://api.github.com/repos/companyzero/zkc/releases/14811816","Warn: release artifact v0.3.0 does not have provenance: https://api.github.com/repos/companyzero/zkc/releases/14626960","Warn: release artifact v0.2.0 does not have provenance: https://api.github.com/repos/companyzero/zkc/releases/11740429","Warn: release artifact v0.1.1 does not have provenance: https://api.github.com/repos/companyzero/zkc/releases/7858584"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","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"}}]},"last_synced_at":"2025-08-17T20:40:18.211Z","repository_id":54394237,"created_at":"2025-08-17T20:40:18.211Z","updated_at":"2025-08-17T20:40:18.211Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28336316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["chat","encryption","go","golang","zero-knowledge"],"created_at":"2026-01-12T06:31:01.898Z","updated_at":"2026-01-12T06:31:02.596Z","avatar_url":"https://github.com/companyzero.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"zkc\n===\n\n[![Build Status](https://github.com/companyzero/zkc/workflows/Build%20and%20Test/badge.svg)](https://github.com/companyzero/zkc/actions)\n[![ISC License](https://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org)\n[![GoDoc](https://img.shields.io/badge/godoc-reference-blue.svg)](http://godoc.org/github.com/companyzero/zkc)\n[![Go Report Card](https://goreportcard.com/badge/github.com/companyzero/zkc)](https://goreportcard.com/report/github.com/companyzero/zkc)\n\nzkc, Zero Knowledge Communications, is a suite of programs to enable private\nand secure communications between any number of parties.\n\n**The zkc suite is a Proof-Of-Concept tool!  The code reflects this by being\nsomewhat intertwined instead of completely and properly separated.  While we\ntook great care to make sure that the important bits are correct there\ncertainly are bugs lurking.  We will happily take PRs that move zkc into a more\nmature project.**\n\n\n## Getting Started\n\n### zkserver\n\nIt is a good idea to create a zkserver user and login to finalize the\ninstallation process.  Create a zkserver directory and copy the config file in\nplace and then edit the config file.\n```bash\n$ mkdir ~/.zkserver\n$ cp $GOPATH/src/github.com/companyzero/zkc/zkserver/zkserver.conf ~/.zkserver/\n$ vi ~/.zkserver/zkserver.conf\n```\n\nThere are 2 items that must be looked at in the config file.\n```bash\nallowidentify = no\ncreatepolicy = no\n```\n\nallowidentify is a setting that explicitly tells zkserver if it is allowed to\nidentify itself to external parties.  This knob exists to enable true closed\nsystems.  When this setting is set to no the only way to communicate with it is\nto have a zkclient that has communicated with this zkserver before or the\nzkclient used zkimport to insert the zkserver identity record into its\nconfiguration.  If this knob is set to yes the zkserver will allow queries of\nits identity during pre-session phase.\n\ncreatepolicy has three settings: yes, no and token.  When createpolicy is set\nto no an external party can not create an account.  If createpolicy is set to\nyes any zkclient can create an account on this zkserver.  And finally if\ncreatepolicy is set to token the zkclient must provide a token during account\ncreation.  This token can be obtained from the zkserver administration.\nCreating a token can be done as the zkserver administrator by running the\nzkservertoken command.  This will spit out a token that can be used once to\ncreate an account.\n\nNote: if you are not using the default ~/.zkserver directory that you need to\nreview all directory/filenames entries in the config file.\n\nThe remaining items in the config file are pretty self explanatory.\n\n### zkclient\n\nzkclient is an irssi look-alike communication client.  Users of irssi will find\nit's interface familiar.\n\nIf zkclient is started for the first time it will create a default directory\nand configuration file in ```~/.zkclient/zkclient.conf```. If you wish to make\nchanges to the config file you must exit the program, edit the configuration\nfile and restart zkclient.\n\nVersions greater than 0.3.0 can export a default config file using the\nfollowing method:\n```bash\n$ zkclient -export /tmp/zkclient.conf\nexporting config file to: /tmp/zkclient.conf\n```\n\nCreate a zkclient directory and copy the config file in place and then edit the\nconfig file.\n```bash\n$ mkdir ~/.zkclient\n$ cp $GOPATH/src/github.com/companyzero/zkc/zkclient/zkclient.conf ~/.zkclient/\n$ vi ~/.zkclient/zkclient.conf\n```\n\nThere is 1 item that must be looked at in the config file.\n```bash\nsavehistory = no\n```\n\nsavehistory is by default set to no.  If you want to have persistent history\n(after exiting zkclient) set this to yes.\n\nNote: if you are not using the default ~/.zkclient directory that you need to\nreview all directory/filenames entries in the config file.\n\nThe remaining items in the config file are pretty self explanatory.\n\nUpon first launch of zkclient it'll prompt the user for: user name, nick,\nserver and token.  The user name is your name (e.g. Alice McAlice), nick is\nyour preferred nick as it is displayed by your received (e.g. alice1337),\nserver is the address of your zkserver and lastly token is the zkserver\nadministrator provided token in order to create an account (if needed).  Once\nthis step is complete you can now communicate with zkserver.\n\nAt this point the zkclient TUI is fully up and once can type /help to get an\nidea of what commands are available.\n\nzkclient uses ratcheted encryption for communications and the server is unable\nto snoop messages.  The only thing zkserver can see is that someone is\ncommunicating with someone else.  This therefore requires users to setup\nratchets between themselves.  Let's illustrate the flow with an example.\n\nAssume that Alice wants to communicate with Bob and both have an account on a\nshared zkserver then the process is as follows:\n```\n1. Alice must upload her identity as an encrypted blob to the zkserver.  This\n   can be accomplished by typing /kx and then filling out a password that is\n   going to be shared with Bob.  The server will return a PIN code upon\n   completion.\n2. Using an out-of-band communication mechanism Alice must share the PIN and\n   password with Bob.\n3. Bob needs to fetch Alice's identity by typing the following /fetch PIN\n   (\"PIN\" is replaced with the actual number provided by Alice).  If the PIN is\n   correct Bob will be prompted for the password of the encrypted blob.  If the\n   blob decrypts properly Bob will additionally be prompted to accept Alice's\n   fingerprint.  If Bob accepts Alice's fingerprint then the rest of the key\n   exchange will be finalized.\n```\n\nzkserver only passes encrypted blobs back and forth between users.  It has no\nknowledge at all of what is being exchanged.  Therefore a key exchange can only\nbe finalized once all parties have been online long enough for all blobs to\ntravel back and forth.\n\nAt this point either Alice or Bob are going to be able to send messages back\nand fort using the /m command (e.g. Alice would to the following /m bob hello\nthere!).\n\nThere are many more commands in zkclient and TUI keys but those are described\nelsewhere.\n\n### zkexport\n\nzkexport export either the zkserver or zkclient public identity.  The zkserver\nidentity does include the host address as well.  The resulting base64 string\ncan be emailed or otherwise exchanged with your counterpart.\n\nzkclient example:\n```bash\n$ zkexport -root /Users/marco/.zkclient1/   \nAAAAEU1hcmNvIFBlZXJlYm9vbSAxAAAAAAAABm1hcmNvMQAAY3rsUd6bTpLI/n2EwmGKPkK3dA/V+wyz5HHLiQgzHNJ9KAZTOrGznd9Ulhe0Y0EVoW8OkuM/G51w6BdvIOm1CWaOAhw8SJi0/vbjZzETd8k397Vl3LPcDUFUbp+JQVKdtBWDhevh3MFN0DY7Oc5ZZrT+lIE+KVwQm/PaPpeIohoWAEBu3HEE6vuq4eQt7BQ6dbEV61ZKUHbMm/61ymhXCA==\n```\n\nzkserver example:\n```bash\n$ zkexport -s -root /Users/marco/.zkserver/   \nAAAACHprc2VydmVyAAAACHprc2VydmVyr51dJzm8pxrjiQsxFF3Bez+6izPdWAcEWZFHka7OwoTAoamQ1hm5eU5HwgQdSS7Ek+nd2LkvjUcu55l3jUhKdBwpfrCn/N/mGWpJS6iMSFSxU/OcRvWe9pEySQZR4gyjjb4TKuaaaReGBI4d8rUfOwoDTs1y05YO4Fgtx9a0BOQsBHvxoPKeqGJ6gxf5QlF4Xu8RRashfRYcTVG44uMpBwAAAmUwggJhMIIBw6ADAgECAhBGHi9VXIHCoQ6W3uSSG9OLMAoGCCqGSM49BAMEMAsxCTAHBgNVBAoTADAeFw0xNjExMjgxNzQwNThaFw00OTEyMzEyMzU5NTlaMAsxCTAHBgNVBAoTADCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAPHlelHUjxH+4JR2+PP71imPZ5b0JjF4vq86UYdgzJXzYmVShJgd+f8qK4ZP+GjLDiZjfl8ov+HUF63uX3V23EZxAVTW0FDyshRiJ+Lt5YmWRMVAM4i+I979Gjq6ySf9bm4Z4vxx1lvUBizussP3KoEG7AdmvbP/HqWzjuQaFH3oeTxDo4HFMIHCMA4GA1UdDwEB/wQEAwICpDAPBgNVHRMBAf8EBTADAQH/MIGeBgNVHREEgZYwgZOCCWxvY2FsaG9zdIIUTWFyY29zLU1hYy1Qcm8ubG9jYWyHBMCojQGHBMCoHQGHEAAAAAAAAAAAAAAAAAAAAAGHEP6AAAAAAAAAuCSI2MJKFRGHEP0JBrb3SIrKuCSI2MJKFRGHBAqqAGmHBH8AAAGHEP6AAAAAAAAAAAAAAAAAAAGHEP6AAAAAAAAAAiUA//7ved0wCgYIKoZIzj0EAwQDgYsAMIGHAkIAstVERsGjpqib7xm1NaplfzmpvOD0H+Zr8lJfKkSCWcnzbPhqo+rl71QlTdqZNzvQHX/hfBNntcXE8f4J80oI+zYCQUl0d7BZYis1X3OTGvguHd01GoxTPFv3HAvu1YlTWFvoShWilKOzH1jDJM//qyagwe/sg67pBUzQ24GQdGDxn/qIAAAA\n```\n\n### zkimport\n\nzkimport is intended to import zkexported base64 strings.\n\nADD EXAMPLES HERE.\n\n### zkservertoken\n\nAs the zkserver user simply type zkservertoken and the tool will spit out a\nsingle use token.  For example:\n```bash\n$  zkservertoken \n7000 8677 6548 2615\n```\n\n## Installing and updating\n\n### Binaries (Windows/Linux/macOS)\n\nBinary releases are provided for common operating systems and architectures:\n\nhttps://github.com/companyzero/zkc/releases\n\n## Verifying Binaries\n\nEach release contains a manifest file with sha256 hashes for the\nbinaries in that release.  To verify these, you will need:\n\n* SHA256 - Once you download your file(s), you need to check their\n  SHA256 hashes, so you may need to download a tool to do this,\n  depending on your OS.\n* GnuPG or PGP - This is required to import public keys and verify\n  signatures. Examples below use GnuPG.\n\nThe steps to verify the binaries are as follows:\n\n1. Download the file manifest, the signature for the file manifest, and the zip/tarball for your OS from here.\n2. Obtain the SHA256 value for the zip/tarball for your OS and check that it matches the value in the file manifest,\ne.g. for 64-bit Linux\n\n   ```\n   $ sha256sum zkc-linux-amd64-v0.2.0.tar.gz\n     51dd11ffbcc573462eb61df8fa5caa60677bcc9178fda5d68d02b3414aa6765f zkc-linux-amd64-v0.2.0.tar.gz\n   ```\n\n3. Import the ZKC Release Signing Key in GnuPG.\n   ```\n   $ gpg  --keyserver hkps://pgp.mit.edu --recv-key 0x14B9CD80\n      gpg: requesting key 14B9CD80 from hkps server pgp.mit.edu\n      gpg: key 511E9D66: public key \"zkc Release Signing Key \u003crelease@zkc.companyzero.com\u003e\" imported\n      gpg: Total number processed: 1\n      gpg:               imported: 1  (RSA: 1)\n   ```\n4. Verify the signature for the file manifest is valid and created by\nthe zkc Release Signing Key.\n\n   ```\n   $ gpg --verify zkc-manifest-v0.2.0.txt.asc\n      gpg: assuming signed data in `zkc-manifest-v0.2.0.txt'\n      gpg: Signature made Mon Jul  2 14:17:16 2018 EDT using RSA key ID 14B9CD80\n      gpg: Good signature from \"zkc Release Signing Key \u003crelease@zkc.companyzero.com\u003e\"\n      gpg: WARNING: This key is not certified with a trusted signature!\n      gpg:          There is no indication that the signature belongs to the owner.\n      Primary key fingerprint: EDCF B52A FCDA E2D2 D9C3  7708 E046 0873 511E 9D66\n           Subkey fingerprint: 1D16 538A 43D1 6765 43E7  31BF D79D DEA2 14B9 CD80\n   ```\n\nThe zip or tarball with binaries for your platform is now verified and\nyou can be confident they were generated by the zkc team.\n\n## Upgrading from 0.3.0\n\nWith the 0.3.0 release the disk format of zkserver was changed. It is advisable\nto backup the zkserver directory prior to running the new zkserver version. The\ncode contains the upgrade code and it has been tested however one should always\nheed this warning prior to upgrades.\n\n## Disclaimer\n\n**zkc has not been audited yet.  Use wisely.**\n\n## Audits and Development\n\nWe are looking for contractors to audit and develop zkc and its crypto\nlibs. Pay is offered in Decred.\n\n## License\n\nzkc is licensed under the [copyfree](http://copyfree.org) ISC License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompanyzero%2Fzkc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompanyzero%2Fzkc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompanyzero%2Fzkc/lists"}