Skip to content

Ethereum-Social-Contract/contracts

 
 

Repository files navigation

Ethereum Social Contract

This repository contains the PrivacyPool contract which enables private ERC20 transfers while maintaining legal compliance by requiring the divulgence of secrets to a trusted committee that will respond to requests from law enforcement orders.

If the backend server is not available, deposited funds may be recovered by performing a public withdrawal that does not break the transfer link.

TAZ contracts use the latest version of the Semaphore.sol contract, deployed on the Goerli testnet. The web app uses Next.js and allows users with a valid Semaphore ID to join the TAZ group and generate Semaphore proofs to post anonymous questions and answers, or to make art. Proofs related to the Q&A part are validated on-chain, while proofs related to artworks are validated off-chain and final canvases are posted as NFTs. Users can also vote anonymously for their favorite artworks.

⚠️ The TAZ apps are experimental and the code is not well tested. For more information visit taz.appliedzkp.org or see our Notion site.

🛠 Install

Clone this repository:

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

And install the dependencies:

cd taz-apps && yarn

📜 Usage

Web app and contracts need their env variables. For each of them, copy the .env.example file as .env:

cd apps/web-app # and apps/contracts
cp .env.example .env

And add your environment variables.

Start the web-app

Run the following command to run a local web app:

yarn start:web-app

Test the contracts

Contracts can be tested with the following command:

yarn test:contracts

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

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 88.4%
  • JavaScript 10.2%
  • Solidity 1.2%
  • Other 0.2%