diff --git a/README.md b/README.md index 2092f32..f584e86 100644 --- a/README.md +++ b/README.md @@ -26,265 +26,134 @@
-- [x] **Programmable Circuits**: The `main` component is created & compiled programmatically. -- [x] **Simple CLI**: A straightforward CLI is provided as a wrapper around SnarkJS commands, exposed via NPM scripts! -- [x] **Easily Configurable**: A single `circomkit.env` file stores the general configuration settings. -- [x] **Constraint Testing**: You can test computations & assertions for every template in a circuit, with minimal code-repetition. -- [x] **Proof Testing**: With prover & verification keys and the WASM circuit, you can test proof generation & verification. -- [x] **Witness Manipulation**: You can parse the output from a witness, and furthermore create fake witnesses to try and fool the verifier. -- [x] **Type-safe**: Witness & proof testers, as well as circuit signal inputs & outputs are all type-safe via generics. -- [x] **Solidity Exports**: Export a verifier contract in Solidity, or export a calldata for your proofs & public signals. +## Installation + +Circomkit is an NPM package, which you can install via: + +```sh +yarn add circomkit # yarn +npm install circomkit # NPM +``` + +You will also need Circom, which can be installed following the instructions [here](https://docs.circom.io/getting-started/installation/). ## Usage -Using Circomkit is easy: +Create an empty project, and install Circomkit. Then, you can setup the environment by simply executing: -1. Install [Circom](https://docs.circom.io/getting-started/installation/). -2. Clone this repo (or use it as a template) and install packages (`yarn` or `npm install`). -3. Write your circuit templates under the [circuits](./circuits/) folder. Your circuit code itself should be templates only; Circomkit programmatically generates the `main` component -4. Write your tests under the [tests](./tests/) folder. -5. Once you are ready, write the circuit configurations at [circuits.json](./circuits.json). -6. Use NPM scripts (`yarn