gnark is a fast zk-SNARK library that offers a high-level API to design circuits. The library is open source and developed under the Apache 2.0 license
gnark is a fast zk-SNARK library that offers a high-level API to design circuits. The library is open source and developed under the Apache 2.0 license
gnark zk-SNARK libraryHigh-performance zk-SNARKs in Go.
gnark provides a high-level API to define circuits, then compile, prove, and verify with production-grade proving systems. It is open-source under Apache 2.0 and uses gnark-crypto for field arithmetic and cryptographic primitives.
gnark powers Linea zk-rollup. Include your project in known users by opening a PR.
gnarkstd/gnark User Documentationgnark Playgroundgnark Issuesgnark Benchmarks gnark-announce - release and security announcements1.25+ (module target: go 1.25.7)go get github.com/consensys/gnark@latestgo run ./examples/cubicTo design your first circuit, follow the tutorial in gnark User Documentation.
gnark currently supports:
on the following curves:
Notes:
gnark includes experimental GPU acceleration through Ingonyama's ICICLE backend for Groth16 on:
See accelerated backend documentation and the ICICLE repository.
The circuit below encodes x**3 + x + 5 == y.
…gnark and gnark-crypto have been extensively audited, but are provided as-is with no guarantees or warranties. In particular, gnark does not guarantee constant-time implementations or side-channel resistance.
Report vulnerabilities via Security Policy. Do not open public issues for security reports.
Published advisories are listed here.
CI runs formatting, generated-file, lint, and test checks on pull requests and pushes.
Common local commands:
go test -short ./...
go test -tags=release_checks,solccheck .
go test -tags=prover_checks ./test/... ./examples/...
go test -run=NONE -fuzz=FuzzIntcomp -fuzztime=30s ./internal/backend/ioutils
go generate ./...See CHANGELOG.md.
If you use gnark in research, please cite the latest release:
@software{gnark-v0.16.3,
author = {Gautam Botrel and
Thomas Piellard and
Youssef El Housni and
Ivo Kubjas and
Arya Tabaie and
Yao J. Galteland},
title = {Consensys/gnark: v0.16.3},
month = aug,
year = 2026,
publisher = {Zenodo},
version = {v0.16.3},
doi = {10.5281/zenodo.5819104},
url = {https://doi.org/10.5281/zenodo.5819104}
}See CONTRIBUTING.md and CODE_OF_CONDUCT.md.
gnark follows SemVer. Available versions are in tags.
Licensed under Apache 2.0 (see LICENSE).
No open issues yet, or sync has not completed.