# Circom vs Other Solutions

## Why Circom?

Circom is a [FOSS](https://learning.lpi.org/en/learning-materials/010-160/1/1.3/1.3_01/) software development kit that, beyond SnarkJS's preference for EVM, is agnostic to underlying tech it runs on. Circom's creators have done a fantastic job of abstracting away vast amounts of mathematical complexity from the developer's perspective. There are many applications that may not need the EVM, however many Solidity developers are unwilling to abandon the security of the root Ethereum mainnet.

Further, the Ethereum ecosystemZ has clearly chosen Circom as the current preferred method for applying zero knowledge on-chain. MACI, Tornado Cash, Semaphore, and Rate-Limiting Nullifier all specify circuits in the Circom DSL. As a newcomer to this space, you will run into issues you simply cannot answer yourself in a timely manner. It is imperative that you find a community that can support your R\&D via forums and chat rooms.

## Alternative DSL's

<details>

<summary>ZoKrates</summary>

</details>

<details>

<summary>Aztec Noir</summary>

</details>

<details>

<summary>Halo 2</summary>

</details>

## L2 zkVM's

<details>

<summary>Mina</summary>

</details>

<details>

<summary>Starkware</summary>

</details>

<details>

<summary>Aleo</summary>

</details>

### L2 zkEVM's

<details>

<summary>Polygon Hermez</summary>

</details>

<details>

<summary>Scroll ZK EVM</summary>

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://battlezips.gitbook.io/battlezips/ecosystem/circom-vs-other-solutions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
