02 — Framework · Framework
gnark
Go eDSL
Against your constraints
In one paragraph
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.
Kind
Go eDSL
Arithmetisation / backend
R1CS / PLONK, six curves
Setup
Yes (scheme-dependent)
Maintained by
Consensys (Linea)
Licence
Apache-2.0
Status
Production-mature
Selection matrix · see the row in context
What it is
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 and tradeoffs
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 whenGo-based backends, proof aggregation and recursion layers, and wrapper circuits for STARK systems.
Related pages
Sources cited on this page · 1
- gnark — Go zk-SNARK libraryproject
All 45 sources for §02 are listed on the section page →
Cite this page
MarketComp (2026). gnark. The ZK Field Manual (Version 1.3). MarketComp. https://zkpick.com/frameworks/gnark/
@misc{zkfieldmanual-gnark,
title = {gnark — The ZK Field Manual},
author = {MarketComp},
year = {2026},
version = {1.3},
howpublished = {\url{https://zkpick.com/frameworks/gnark/}},
note = {Accessed: YYYY-MM-DD}
}