02 — Framework · Framework

gnark

Go eDSL

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.

Sources cited on this page · 1

  1. gnark — Go zk-SNARK libraryproject
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}
}