{"id":19712135,"url":"https://github.com/semaphore-protocol/extensions","last_synced_at":"2026-05-08T06:11:08.000Z","repository":{"id":234194776,"uuid":"742099160","full_name":"semaphore-protocol/extensions","owner":"semaphore-protocol","description":"Semaphore tools and extensions.","archived":false,"fork":false,"pushed_at":"2024-04-25T08:14:38.000Z","size":1261,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-25T10:01:49.913Z","etag":null,"topics":["ethereum","javascript","monorepo","proof-of-membership","semaphore","typescript","zero-knowledge","zero-knowledge-proofs","zk-snarks"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/semaphore-protocol.png","metadata":{"files":{"readme":"README.md","changelog":"changelogithub.config.json","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-01-11T18:58:48.000Z","updated_at":"2024-04-29T10:47:27.917Z","dependencies_parsed_at":"2024-04-29T10:46:54.341Z","dependency_job_id":"2fd6e31b-1ab9-474b-bcc8-0d15b6db793e","html_url":"https://github.com/semaphore-protocol/extensions","commit_stats":null,"previous_names":["semaphore-protocol/extensions"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semaphore-protocol%2Fextensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semaphore-protocol%2Fextensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semaphore-protocol%2Fextensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/semaphore-protocol%2Fextensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/semaphore-protocol","download_url":"https://codeload.github.com/semaphore-protocol/extensions/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241030001,"owners_count":19897007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ethereum","javascript","monorepo","proof-of-membership","semaphore","typescript","zero-knowledge","zero-knowledge-proofs","zk-snarks"],"created_at":"2024-11-11T22:15:15.503Z","updated_at":"2026-05-08T06:11:02.973Z","avatar_url":"https://github.com/semaphore-protocol.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ch1 align=\"center\"\u003e\n        Semaphore Extensions\n    \u003c/h1\u003e\n    \u003cp align=\"center\"\u003eSemaphore Tools and Extensions Monorepo.\u003c/p\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/semaphore-protocol\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/project-Semaphore-blue.svg?style=flat-square\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/semaphore-protocol/extensions/blob/main/LICENSE\"\u003e\n        \u003cimg alt=\"Github license\" src=\"https://img.shields.io/github/license/semaphore-protocol/extensions\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/semaphore-protocol/extensions/actions?query=workflow%3Aproduction\"\u003e\n        \u003cimg alt=\"GitHub Workflow test\" src=\"https://img.shields.io/github/actions/workflow/status/semaphore-protocol/extensions/production.yml?branch=main\u0026style=flat-square\u0026logo=github\u0026label=test\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://coveralls.io/github/semaphore-protocol/extensions\"\u003e\n        \u003cimg alt=\"Coveralls\" src=\"https://img.shields.io/coverallsCoverage/github/semaphore-protocol/extensions?style=flat-square\u0026logo=coveralls\u0026label=coverage%20(ts)\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://eslint.org/\"\u003e\n        \u003cimg alt=\"Linter eslint\" src=\"https://img.shields.io/badge/linter-eslint-8080f2?style=flat-square\u0026logo=eslint\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://prettier.io/\"\u003e\n        \u003cimg alt=\"Code style prettier\" src=\"https://img.shields.io/badge/code%20style-prettier-f8bc45?style=flat-square\u0026logo=prettier\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"http://commitizen.github.io/cz-cli/\"\u003e\n        \u003cimg alt=\"Commitizen friendly\" src=\"https://img.shields.io/badge/commitizen-friendly-586D76?style=flat-square\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ch4\u003e\n        \u003ca href=\"/CONTRIBUTING.md\"\u003e\n            👥 Contributing\n        \u003c/a\u003e\n        \u003cspan\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n        \u003ca href=\"/CODE_OF_CONDUCT.md\"\u003e\n            🤝 Code of conduct\n        \u003c/a\u003e\n        \u003cspan\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n        \u003ca href=\"https://github.com/semaphore-protocol/extensions/issues/new/choose\"\u003e\n            🔎 Issues\n        \u003c/a\u003e\n        \u003cspan\u003e\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n        \u003ca href=\"https://semaphore.pse.dev/telegram\"\u003e\n            🗣️ Chat \u0026amp; Support\n        \u003c/a\u003e\n    \u003c/h4\u003e\n\u003c/div\u003e\n\n| Semaphore Extensions is a set of applications, tools and libraries that can be used with the Semaphore protocol. |\n| ---------------------------------------------------------------------------------------------------------------- |\n\n♚ [Yarn workspaces](https://yarnpkg.com/features/workspaces): minimal monorepo package management (`yarn`, `yarn build`, `yarn docs`)\\\n♛ [Conventional Commits](https://www.conventionalcommits.org): human and machine readable meaning to commit messages (`yarn commit`)\\\n♜ [Jest](https://jestjs.io/): tests and test coverage for all libraries (`yarn test:libraries`)\\\n♞ [ESLint](https://eslint.org/), [Prettier](https://prettier.io/): code quality and formatting (`yarn prettier` \u0026 `yarn lint`)\\\n♝ [Typedocs](https://typedoc.org/): documentation generator for TypeScript (`yarn docs`)\\\n♟ [Github actions](https://github.com/features/actions): software workflows for automatic testing, documentation deploy and code quality checks\n\n## 📦 Packages\n\n\u003ctable\u003e\n    \u003cth\u003ePackage\u003c/th\u003e\n    \u003cth\u003eVersion\u003c/th\u003e\n    \u003cth\u003eDownloads\u003c/th\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://github.com/semaphore-protocol/extensions/tree/main/packages/contracts\"\u003e\n                    @semaphore-extensions/contracts\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- NPM version --\u003e\n                \u003ca href=\"https://www.npmjs.com/package/@semaphore-extensions/contracts\"\u003e\n                    \u003cimg alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/%40semaphore-extensions%2Fcontracts\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- Downloads --\u003e\n                \u003ca href=\"https://npmjs.org/package/@semaphore-extensions/contracts\"\u003e\n                    \u003cimg alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dm/%40semaphore-extensions%2Fcontracts\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://github.com/semaphore-protocol/extensions/tree/main/packages/heyauthn\"\u003e\n                    @semaphore-extensions/heyauthn\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- NPM version --\u003e\n                \u003ca href=\"https://www.npmjs.com/package/@semaphore-extensions/heyauthn\"\u003e\n                    \u003cimg alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/%40semaphore-extensions%2Fheyauthn\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- Downloads --\u003e\n                \u003ca href=\"https://npmjs.org/package/@semaphore-extensions/heyauthn\"\u003e\n                    \u003cimg alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dm/%40semaphore-extensions%2Fheyauthn\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://github.com/semaphore-protocol/extensions/tree/main/packages/identity-proof\"\u003e\n                    @semaphore-extensions/identity-proof\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- NPM version --\u003e\n                \u003ca href=\"https://www.npmjs.com/package/@semaphore-extensions/identity-proof\"\u003e\n                    \u003cimg alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/%40semaphore-extensions%2Fidentity-proof\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- Downloads --\u003e\n                \u003ca href=\"https://npmjs.org/package/@semaphore-extensions/identity-proof\"\u003e\n                    \u003cimg alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dm/%40semaphore-extensions%2Fidentity-proof\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://github.com/semaphore-protocol/extensions/tree/main/packages/identity-proof.circom\"\u003e\n                    @semaphore-extensions/identity-proof.circom\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- NPM version --\u003e\n                \u003ca href=\"https://www.npmjs.com/package/@semaphore-extensions/identity-proof.circom\"\u003e\n                    \u003cimg alt=\"NPM Version\" src=\"https://img.shields.io/npm/v/%40semaphore-extensions%2Fidentity-proof.circom\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003c!-- Downloads --\u003e\n                \u003ca href=\"https://npmjs.org/package/@semaphore-extensions/identity-proof.circom\"\u003e\n                    \u003cimg alt=\"NPM Downloads\" src=\"https://img.shields.io/npm/dm/%40semaphore-extensions%2Fidentity-proof.circom\"\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctbody\u003e\n\u003c/table\u003e\n\n## 🖥️ Apps\n\n\u003ctable\u003e\n    \u003cth\u003eApp\u003c/th\u003e\n    \u003cth\u003eURL\u003c/th\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://github.com/semaphore-protocol/extensions/tree/main/apps/benchmarks\"\u003e\n                    Benchmarks\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://benchmarks.semaphore.pse.dev/\"\u003e\n                    https://benchmarks.semaphore.pse.dev/\n                \u003c/a\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://github.com/semaphore-protocol/extensions/tree/main/apps/explorer\"\u003e\n                    Explorer\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003ca href=\"https://explorer.semaphore.pse.dev/\"\u003e\n                    https://explorer.semaphore.pse.dev/\n                \u003c/a\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n    \u003ctbody\u003e\n\u003c/table\u003e\n\n## 🛠 Install\n\nClone this repository:\n\n```bash\ngit clone https://github.com/semaphore-protocol/extensions.git\n```\n\nand install the dependencies:\n\n```bash\ncd extensions \u0026\u0026 yarn\n```\n\n## 📜 Usage\n\n### Code quality and formatting\n\nRun [ESLint](https://eslint.org/) to analyze the code and catch bugs:\n\n```bash\nyarn lint\n```\n\nRun [Prettier](https://prettier.io/) to check formatting rules:\n\n```bash\nyarn format\n```\n\nor to automatically format the code:\n\n```bash\nyarn format:write\n```\n\n### Conventional commits\n\nSemaphore uses [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). A [command line utility](https://github.com/commitizen/cz-cli) to commit using the correct syntax can be used by running:\n\n```bash\nyarn commit\n```\n\nIt will also automatically check that the modified files comply with ESLint and Prettier rules.\n\n### Testing\n\nTest the code:\n\n```bash\nyarn test\n```\n\n### Build\n\nBuild all the packages:\n\n```bash\nyarn build\n```\n\nA `dist` folder will be created inside each JavaScript package.\n\n### Documentation\n\nGenerate a documentation website for each package:\n\n```bash\nyarn docs\n```\n\nThe output will be placed on the `docs` folder.\n\n### Releases\n\nBump a new version for your package with:\n\n```bash\nyarn version:bump \u003cpackage-name\u003e \u003cversion\u003e\n# e.g. yarn version:bump utils 2.0.0\n```\n\nIt will create a commit and a git tag that you'll need to push on the main branch. A workflow will be triggered and will\npublish your package on [npm](https://www.npmjs.com/) and release a new version on Github with its changelogs automatically.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemaphore-protocol%2Fextensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsemaphore-protocol%2Fextensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsemaphore-protocol%2Fextensions/lists"}