Giter Site home page Giter Site logo

cichaczem / semaphore Goto Github PK

View Code? Open in Web Editor NEW

This project forked from semaphore-protocol/semaphore

0.0 0.0 0.0 24.19 MB

A zero-knowledge protocol for anonymous signalling on Ethereum.

Home Page: https://semaphore.appliedzkp.org

License: MIT License

Shell 0.12% JavaScript 0.06% TypeScript 62.04% EJS 4.21% Solidity 33.57%

semaphore's Introduction

Semaphore icon. Semaphore

Github license GitHub Workflow test Coveralls DeepScan grade Linter eslint Code style prettier Repository top language

Semaphore is a protocol, designed to be a simple and generic privacy layer for Ethereum DApps. Using zero knowledge, Ethereum users can prove their membership of a group and send signals such as votes or endorsements without revealing their original identity.

The core of the Semaphore protocol is in the circuit logic. However Semaphore also provides Solidity contracts and JavaScript libraries to make the steps for offchain proof creation and onchain verification easier. To learn more about Semaphore visit semaphore.appliedzkp.org.


📦 Packages

Package Version Downloads
@semaphore-protocol/contracts NPM version Downloads
@semaphore-protocol/identity (docs) NPM version Downloads
@semaphore-protocol/group (docs) NPM version Downloads
@semaphore-protocol/proof (docs) NPM version Downloads
@semaphore-protocol/subgraph (docs) NPM version Downloads
@semaphore-protocol/hardhat NPM version Downloads
@semaphore-protocol/cli NPM version Downloads

🛠 Install

Clone this repository:

git clone https://github.com/semaphore-protocol/semaphore.git

And install the dependencies:

cd semaphore && yarn

📜 Usage

Copy the .env.example file as .env:

cp .env.example .env

And add your environment variables.

Code quality and formatting

Run ESLint to analyze the code and catch bugs:

yarn lint

Run Prettier to check formatting rules:

yarn prettier

Or to automatically format the code:

yarn prettier:write

Conventional commits

Semaphore uses conventional commits. A command line utility to commit using the correct syntax can be used by running:

yarn commit

It will also automatically check that the modified files comply with ESLint and Prettier rules.

Snark artifacts

Download the Semaphore snark artifacts needed to generate and verify proofs:

yarn download:snark-artifacts

Testing

Run Jest to test the JS libraries:

yarn test:libraries

Run Mocha to test the contracts:

yarn test:contracts

Or test everything with:

yarn test

Build libraries & compile contracts

Run Rollup to build all the packages:

yarn build:libraries

Compile the smart contracts with Hardhat:

yarn compile:contracts

Documentation (JS libraries)

Run TypeDoc to generate a documentation website for each package:

yarn docs

The output will be placed on the docs folder.

semaphore's People

Contributors

cedoor avatar kobigurk avatar recmo avatar 0xorbus avatar weijiekoh avatar vplasencia avatar shaheenrehman avatar saleel avatar akinovak avatar cichaczem avatar cddelta avatar tomoima525 avatar aguzmant103 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.