> For the complete documentation index, see [llms.txt](https://battlezips.gitbook.io/battlezips/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://battlezips.gitbook.io/battlezips/awesome-circom.md).

# Awesome Circom

{% hint style="info" %}
We are continuously working on this until it is complete without compromising on quality for the sake of being "done". Please see the *Awesome Circom Progress* expandable which tracks our work on this gitbook as we mature it into the resource we promised.\
\
(Last updated 10.25.22)
{% endhint %}

<details>

<summary>Awesome Circom Progress</summary>

* [ ] Theory <-- basically not started
* [ ] Development <-- Current focus
  * [x] Circom Language
  * [ ] SnarkJS <-- current focus
  * [ ] circomlibjs <-- current focus
  * [ ] circom-tester <-- todo
  * [ ] hardhat-circom <-- todo
  * [x] Shield CLI
  * [x] Circomspect
* [ ] Ecosystem <-- almost done, need to add/ update more projects
* [ ] Examples
  * [ ] BattleZips <-- not started but pretty quick
  * [ ] RollupNC <-- super close to done
  * [ ] Semaphore <-- potential for inclusion, not guaranteed

</details>

[Circom](https://github.com/iden3/circom) (Circuit Compiler) is a domain-specific language for designing Zero Knowledge circuits (code). With the accompanying [SnarkJS](https://github.com/iden3/snarkjs) library, developers can prove and verify private information on public EVM blockchains.

<figure><img src="/files/NZg565HYKDnzApXekB4k" alt=""><figcaption><p>This GitBook was released for DevCon Bogota <em>(10.11.22-10.14.22)</em></p></figcaption></figure>

*This GitBook has three sections.*

**Theory** - *What do I need to know to effectively use the Circom/ SnarkJS/ Solidity stack?*

**Development -** *How do I use the Circom/ SnarkJS/ Solidity stack?*

**Ecosystem -** *What resources exist for me to utilize?*

{% hint style="info" %}
*Join the BattleZips Discord @* [*https://discord.gg/NEyTSmjewn*](https://discord.gg/NEyTSmjewn)
{% endhint %}
