{"id":37907718,"url":"https://github.com/vchain-us/jsvcn","last_synced_at":"2026-01-16T17:14:58.627Z","repository":{"id":57286543,"uuid":"184730172","full_name":"vchain-us/jsvcn","owner":"vchain-us","description":"CodeNotary JavaScript Client","archived":false,"fork":false,"pushed_at":"2022-07-16T03:10:40.000Z","size":4608,"stargazers_count":17,"open_issues_count":5,"forks_count":2,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-09-25T19:38:11.925Z","etag":null,"topics":["blockchain","code-verification","integrity-checker","javascript","javascript-library"],"latest_commit_sha":null,"homepage":"https://www.codenotary.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vchain-us.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":"2019-05-03T09:28:30.000Z","updated_at":"2021-11-18T08:59:25.000Z","dependencies_parsed_at":"2022-09-20T01:11:13.269Z","dependency_job_id":null,"html_url":"https://github.com/vchain-us/jsvcn","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/vchain-us/jsvcn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchain-us%2Fjsvcn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchain-us%2Fjsvcn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchain-us%2Fjsvcn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchain-us%2Fjsvcn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vchain-us","download_url":"https://codeload.github.com/vchain-us/jsvcn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vchain-us%2Fjsvcn/sbom","scorecard":{"id":917335,"data":{"date":"2025-08-11","repo":{"name":"github.com/vchain-us/jsvcn","commit":"e6aebabf904482e567249707bbdac3f1485264a6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"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":"Code-Review","score":0,"reason":"Found 0/28 approved changesets -- score normalized to 0","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":"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/docs.yaml: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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/docs.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/vchain-us/jsvcn/docs.yaml/master?enable=pin","Info:   0 out of   1 third-party GitHubAction 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":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: GNU General Public License v3.0: 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":-1,"reason":"no releases found","details":null,"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":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"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":"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 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":0,"reason":"127 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-c429-5p7v-vgjp","Warn: Project is vulnerable to: GHSA-6chw-6frg-f759","Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-whgm-jr23-g3j9","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-4w2v-q235-vp99","Warn: Project is vulnerable to: GHSA-cph5-m8f7-6c5x","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-257v-vj4p-3w2h","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-3wcq-x3mq-6r9p","Warn: Project is vulnerable to: GHSA-ff7x-qrg7-qggm","Warn: Project is vulnerable to: GHSA-phwq-j96m-2c2q","Warn: Project is vulnerable to: GHSA-ghr5-ch3p-vcr6","Warn: Project is vulnerable to: GHSA-vh7m-p724-62c2","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-6h5x-7c5m-7cr7","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-74fj-2j2h-c42q","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-vfrc-7r7c-w9mx","Warn: Project is vulnerable to: GHSA-7wwv-vh3v-89cq","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m","Warn: Project is vulnerable to: GHSA-6x33-pw7p-hmpq","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-7r28-3m3f-r2pr","Warn: Project is vulnerable to: GHSA-r8j5-h5cx-65gg","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-92xj-mqp7-vmcj","Warn: Project is vulnerable to: GHSA-wxgw-qj99-44c2","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-rp65-9cf3-cjxr","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-566m-qj78-rww5","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-hwj9-h5mp-3pm3","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-h9rv-jmmf-4pgx","Warn: Project is vulnerable to: GHSA-hxcc-f52p-wc94","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-c9g6-9335-x697","Warn: Project is vulnerable to: GHSA-vx3p-948g-6vhq","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-r628-mhmh-qjhw","Warn: Project is vulnerable to: GHSA-9r2w-394v-53qc","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-qq89-hq3f-393p","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-29xr-v42j-r956","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-9m6j-fcg5-2442","Warn: Project is vulnerable to: GHSA-hh27-ffr2-f2jc","Warn: Project is vulnerable to: GHSA-rqff-837h-mm52","Warn: Project is vulnerable to: GHSA-8v38-pw62-9cw2","Warn: Project is vulnerable to: GHSA-hgjh-723h-mx2j","Warn: Project is vulnerable to: GHSA-jf5r-8hm2-f872","Warn: Project is vulnerable to: GHSA-5j4c-8p2g-v4jx","Warn: Project is vulnerable to: GHSA-g3ch-rx76-35fx","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-g78m-2chm-r7qv","Warn: Project is vulnerable to: GHSA-6fc8-4gx4-v693","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp","Warn: Project is vulnerable to: GHSA-7gc6-qh9x-w6h8","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7"],"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-24T21:31:21.914Z","repository_id":57286543,"created_at":"2025-08-24T21:31:21.914Z","updated_at":"2025-08-24T21:31:21.914Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28480093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["blockchain","code-verification","integrity-checker","javascript","javascript-library"],"created_at":"2026-01-16T17:14:57.796Z","updated_at":"2026-01-16T17:14:58.619Z","avatar_url":"https://github.com/vchain-us.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jsvcn\n\n#### CodeNotary - JavaScript Client \n\n\u003e Global, de-centralized signing of code and other digital assets.\n\nThis [package](https://github.com/vchain-us/jsvcn) provides an easy to use javascript client for the [CodeNotary](https://www.codenotary.io)\nplatform. \n\n## Features: \n\n- authenticate digital assets via Codenotary API or Codenotary Blockchain\n- notarize, untrust and unsupport digital assets via Codenotary API \n\n## Demo\n\n- [Demo App - Vue.js](https://vchain-us.github.io/jsvcn/) ([source](https://github.com/vchain-us/jsvcn/tree/master/example))\n- [CodeNotary Authenticate App](https://authenticate.codenotary.io/)\n- [CodeNotary Chrome Extension](https://chrome.google.com/webstore/detail/vchain-codenotary-downloa/mnloemedehacppeggbipipjlphdjpjcb)\n\n## Install: \n\n``` \nnpm install jsvcn\n\n```\n\n## Init\n\nES6: \n\n```javascript\n\nimport Jsvcn from \"jsvcn\"\n\nconst jsvcn = new Jsvcn();\n\n```\n\nES5 (bundled): \n\n```html\n\u003cscript src=\"https://unpkg.com/jsvcn@2.1.7/dist/jsvcn.min.js\" type=\"text/javascript\"\u003e\u003c/script\u003e\n\n```\n\n```javascript\n\nvar jsvcn = new Jsvcn();\n\n```\n\n\n### Configuration\n\nConfigure the client via passing a configuration object to the constructor: \n\n```javascript\n\nconst config = {\n\tcredentials: {\n\t\temail: 'test@vchain.us',\n\t\tpassword: 'abc123',\n\t},\n\tmode: 'blockchain',\n\t...\n}\n\nconst jsvcn = new Jsvcn(config);\n\n```\n\n#### List of configuration options\n\n| Configuration |  Descrition |\n| --- | --- |\n| credentials  | Credentials for notarization | \n| mode | Default value: 'api' - Switch between 'api and 'blockchain' mode |\n| checksums | Default value: ['sha256'] You can add more hash algorithms to get the hashed file's checksums.  | \n| validationOnly | Default: false. Blockchain mode only. Set it to true in case you don't want to query asset details from the CodeNotary Asset Server (faster response) |\n| apiUrl | Custom CodeNotary API url - overwrite this if you use local vcn api |\n| blockchainUrl | CodeNotary Blockchain url - overwrite this if you want to use staging |\n| assetUrl |  CodeNotary Asset Server url - overwrite this if you want to use staging  |\n| blockchainAssetAddress |  Custom Contract address - for staging | \n| blockchainOrganizationAddress |  Custom Org. Contract address - for staging | \n\nEvery configuration option is optional.\n\n\n## Authentication\n\n```javascript\njsvcn.verify(file).then((response) =\u003e {\n ...\n})\n```\n\nMore information about the response format: [#] (CodeNotary API Documentation])\n\n### Authentication with Organization\n\n```javascript\njsvcn.verify(file, progressCb, \"myorg.com\").then((response) =\u003e {\n ...\n})\n```\n\n### Authentication with SignerIDs\n\n```javascript\njsvcn.verify(file, null, ['id1','id2',...]).then((response) =\u003e {\n ...\n})\n```\n\n## Notarization\n\n```javascript\njsvcn.sign(file).then((response) =\u003e {\n ...\n})\n```\n\nFor notarization you need to pass valid CodeNotary user credentials in the config: \n\n```javascript\n\nconst jsvcn = new Jsvcn({\n\tcredentials: {\n\t\temail: 'test@vchain.us',\n\t\tpassword: 'abc123',\n\t\t// notarizationPassword: 'abc321' - required only when your notarization password is different than your normal user password. \n\t},\n\t...\n);\n```\n\n**Public Notarization**\n\n```javascript\njsvcn.sign(file, { public: true }).then((response) =\u003e {\n ...\n})\n```\n\nMore information about the response format: [#] (CodeNotary API Documentation])\n\n## Untrust / Unsupport \n\nIn case you want to unsupport/untrust an asset of yours that you no longer have, you can do that exactly the same way like signing one: \n\n```javascript\n\njsvcn.untrust(\u003cfile or hash\u003e).then((response) =\u003e { ...\n\n```\n\n## FAQ:\n\n\n### Authenticate / notarize sha256 hashes \n\nVerify and sign are able to authenticate / notarize directly the SHA256 hash of an asset: \n\n``` javascript\n\njsvcn.verify(\"32c6a50aba0b30f63f124f4b2bb47dc027b9e48f838f71d1debe69d8680ecf70\");\n\n``` \n\n### Async - await syntax\n\nVerify and sign methods are always returning with a Promise. \nIf you prefer async-await syntax you can use that as well: \n\n``` javascript\n\nasync function myAuthenticate(){\n const {status} = await jsvcn.verify(FILE);\n ...\n}\n\n```\n\n### Progress callback (for large files)\n\nSince veriy and sign methods are asyncronous calls it's easy to implement progress indicators (eg. just toggle a variable before and after the call.) But for verify and sign commands we are also providing a progress callback as second parameter which periodically returns with the exact percentage of the file hashing progress. This is really handy when you verify large files and want to display (the real) status of the progress.\n\n``` javascript\njsvcn.sign(file, (progress) =\u003e console.log(progress + '%'));\n\n``` \n\n### Calculate Checksums\n\nCodeNotary.io uses SHA256 algorithm to calculate and compare file hashes, but our library can also provide SHA1, SHA512, MD5 checksums of the file. You can add \"checksums\" attribute to the config object with an array of checksums you want to get back from the verify method.\n\n``` javascript\nconst jsvcn = new Jsvcn({checksums: [\"sha1\", \"md5\"]});\n\n``` \n\n\n### Authentication directly via the CodeNotary Blockchain with Ethers.js\n\nIf you want to directly authenticate assets with CodeNotary Blockchain add this to your html page:\n\n```\n\u003cscript src=\"https://cdn.ethers.io/scripts/ethers-v4.min.js\" type=\"text/javascript\"\u003e\u003c/script\u003e\n\n```\nand set ``` mode: 'blockchain',``` in your config. \n\n\n## License\n\nThis software is released under GPL3.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvchain-us%2Fjsvcn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvchain-us%2Fjsvcn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvchain-us%2Fjsvcn/lists"}