---
title: "gnark"
description: "gnark: Go eDSL. Kind: Go eDSL. Arithmetisation / backend: R1CS / PLONK, six curves. Setup: Yes (scheme-dependent). Maintained by: Consensys (Linea)."
type: "option"
url: "https://zkpick.com/frameworks/gnark/"
section: "02 Choosing a framework"
authors:
  - "MarketComp"
publisher: "MarketComp"
version: "1.3"
updated: "2026-09-12"
license: "CC-BY-4.0"
json: "https://zkpick.com/data/frameworks/gnark.json"
---

*By MarketComp. Updated 2026-09-12. Version 1.3. CC BY 4.0.*

# gnark — *Go eDSL*

> gnark: Go eDSL. Kind: Go eDSL. Arithmetisation / backend: R1CS / PLONK, six curves. Setup: Yes (scheme-dependent). Maintained by: Consensys (Linea). Licence: Apache-2.0. Status: Production-mature. Choose it when: Go-based backends, proof aggregation and recursion layers, and wrapper circuits for STARK systems.

A Go SNARK library offering a high-level circuit API over Groth16 and PLONK, instantiable on six curves, with an extensive standard library and in-circuit recursive verifiers.

**Strengths**

- Two proving schemes and six curves behind one circuit API — genuinely the most swappable backend situation among circuit libraries
- Strong, documented recursion support including in-circuit verifiers
- The obvious choice if your existing backend is Go
- Permissive licence and a documented audit trail

**Tradeoffs**

- Go sits outside the mainstream of ZK research code, so new proof systems land there later
- Still a constraint-writing library: the underconstrained bug class applies, and static analysis is much thinner than for Circom
- Corporate stewardship means roadmap priorities follow the sponsor's own chain

**Choose it when:** Go-based backends, proof aggregation and recursion layers, and wrapper circuits for STARK systems.

Maintained by: Consensys (Linea) · Maturity: Production-mature · License: Apache-2.0 · Source: https://github.com/Consensys/gnark

**In the framework selection matrix** (https://zkpick.com/frameworks/#frameworks-matrix-gnark)

| Project | Kind | Arithmetisation / backend | Setup | Maintained by | Licence | Status |
| --- | --- | --- | --- | --- | --- | --- |
| gnark | Go eDSL | R1CS / PLONK, six curves | Yes (scheme-dependent) | Consensys (Linea) | Apache-2.0 | Production-mature |
