---
description: Library that drives all things Circom
---

# SnarkJS

SnarkJS is a first-party JavaScript library used to make use of Circom files at all levels of the stack. While circuits themselves are written as `.circom` files, just about all functionality derived from these files comes from their integration with SnarkJS.&#x20;

<figure><img src="https://1091404591-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu3R2CTByhos1Cr9t3iOB%2Fuploads%2FlpxBB5iBCv6O6IUpCBb9%2Fimage.png?alt=media&#x26;token=d1b1d536-5ccc-469e-8ea3-bcd3550a6277" alt=""><figcaption><p><a href="https://docs.circom.io/#snarkjs">graphic found at https://docs.circom.io/#snarkjs</a></p></figcaption></figure>

### Installation

[View the IDE installation instructions here.](https://battlezips.gitbook.io/battlezips/development/circom-language/installation#using-snarkjs)

In order to generate Zero Knowledge Proofs in a browser client (production)



### Functionality

<details>

<summary>Groth16 ZK Proving Scheme</summary>



</details>

<details>

<summary>PLONK ZK Proving Scheme</summary>



</details>

<details>

<summary></summary>



</details>

### Links

* [Github Source](https://github.com/iden3/snarkjs)
* Docs
  * README.md in Github (Superior documentation)
  * Iden3 site
* [NPM Package](https://www.google.com/search?channel=fs\&client=ubuntu\&q=snarkjs)
