* chore(website): update roadmap * chore(website): update license year 2024 -> 2025 re #947
Semaphore contracts
Semaphore contracts to manage groups and broadcast anonymous signals.
To learn more about contracts visit semaphore.pse.dev.
🛠 Install
You can install the semaphore protocol contracts with any node package manager (bun, npm, pnpm,yarn) or the solidity package manager soldeer.
bun add @semaphore-protocol/contracts
npm i @semaphore-protocol/contracts
pnpm add @semaphore-protocol/contracts
yarn add @semaphore-protocol/contracts
# for soldeer, an explicit version is required, e.g:
soldeer install semaphore-protocol-contracts~4.6.0
📜 Usage
Compile contracts
Compile the smart contracts with Hardhat:
yarn compile
Testing
Run Mocha to test the contracts:
yarn test
You can also generate a test coverage report:
yarn test:coverage
Or a test gas report:
yarn test:report-gas
Deploy contracts
Deploy the Semaphore.sol contract without any parameter:
yarn deploy
or deploy it by providing the addresses of the contracts/libraries on which it depends:
yarn deploy --semaphoreVerifier <address>
Note
Runyarn deploy:semaphore --helpto see the complete list.
If you want to deploy your contract in a specific network you can set up the DEFAULT_NETWORK variable in your .env file with the name of one of our supported networks (hardhat, localhost, sepolia, arbitrum). Or you can specify it as an option:
yarn deploy --network sepolia
yarn deploy --network mumbai
yarn deploy --network optimism-sepolia
yarn deploy --network arbitrum-sepolia
yarn deploy --network arbitrum
If you want to deploy contracts on Sepolia or Arbitrum, remember to provide a valid private key and an Infura API in your .env file.