---
title: "gnark mpcsetup"
description: "gnark mpcsetup: Phase 1 and phase 2 tooling. Go implementation of the two-phase Groth16 MPC setup inside the gnark proving library, exposing contribution…"
type: "option"
url: "https://zkpick.com/ceremony/gnark-mpcsetup/"
section: "04 Running or reusing a trusted setup"
authors:
  - "MarketComp"
publisher: "MarketComp"
version: "1.3"
updated: "2026-09-12"
license: "CC-BY-4.0"
json: "https://zkpick.com/data/ceremony/gnark-mpcsetup.json"
---

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

# gnark mpcsetup — *Phase 1 and phase 2 tooling*

> gnark mpcsetup: Phase 1 and phase 2 tooling. Go implementation of the two-phase Groth16 MPC setup inside the gnark proving library, exposing contribution, verification and sealing as ordinary library calls. Maturity: Maintained; smaller ceremony track record. Maintained by: Consensys (gnark team). Choose it when: Teams whose circuits are written in gnark and who want the ceremony in the same toolchain as the prover.

Go implementation of the two-phase Groth16 MPC setup inside the gnark proving library, exposing contribution, verification and sealing as ordinary library calls. Phase 2 initialises from a phase-1 file plus the circuit's constraint system.

**Strengths**

- Native to a Go proving stack, avoiding cross-language artefact conversion
- Ceremony automation and per-contribution verification are straightforward to script
- Part of an actively maintained general proving library rather than a single-purpose script

**Tradeoffs**

- Far fewer public ceremonies have been run with it, so less community-tested operational guidance
- Interoperating with snarkjs .ptau files requires a converter
- BN254-focused; check curve coverage before assuming parity with snarkjs

**Choose it when:** Teams whose circuits are written in gnark and who want the ceremony in the same toolchain as the prover.

Maintained by: Consensys (gnark team) · Maturity: Maintained; smaller ceremony track record · License: Apache-2.0 · Source: https://pkg.go.dev/github.com/consensys/gnark/backend/groth16/bn254/mpcsetup
