Skip to content

Releases: cryptoduke01/gloam

Trusted setup: final keys

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 21:31

Gloam's trusted setup is complete. These are the final keys for the six mainnet circuits: shield, unshield, transfer, solvency (proof of funds), receipt (proof of payment) and payroll_total.

How they were made

  • Phase 1: the public Hermez Powers of Tau (powersOfTau28_hez_final_16.ptau, 54 contributors).
  • Phase 2: thirteen contributions in turn on 17 October 2026, by Gift, Duke, deviykee, Sage, wilcardjayx, GodwinXbt, Romeo, Maverick, SamY, Bob, Xavier Okolie, ubadineke and Viktor. Every round was checked against round 000 and phase 1 before the next person took it, and each one is a release on this repo.
  • Sealed with drand mainnet round 6561386 (17 October 2026, 21:30 UTC), announced in the transcript an hour before it was published. Randomness ea1786e93767a0b14fe2d5687006a9229fb9c7fd6dee79ddc6eaecae2a2971ec, applied to round 013 with 2^10 iterations.

If even one of the thirteen contributors threw their randomness away, nobody can forge a proof with these keys, including the Gloam team.

Files

  • <circuit>_final.zkey: the proving keys
  • <circuit>_vkey.json: the verifying keys
  • <circuit>.wasm: the witness generators (identical to the ones the app serves today)
  • ShieldVerifier.sol, UnshieldVerifier.sol, TransferVerifier.sol: the on-chain verifiers for the mainnet contracts

Every hash and fingerprint is in TRANSCRIPT.md. To check that your contribution is inside these keys, see README.md.

These keys are for mainnet. The testnet app and contracts keep their development keys until the mainnet deploy.

Trusted setup: round 013 (Viktor)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 20:23

Round 013 of Gloam's trusted setup, the last contribution: one contribution, by Viktor, on top of round 012.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly thirteen contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Contributions are closed. The final beacon is drand mainnet round 6561386 (2026-10-17, 21:30 UTC), applied to this round.

Trusted setup: round 012 (ubadineke)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 19:48

Round 012 of Gloam's trusted setup: one contribution, by ubadineke, on top of round 011.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly twelve contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Next contributor: download round-012.zip, unzip it inside contracts/ceremony/, and follow CONTRIBUTE.md with round number 012. To check this round yourself, use the .r1cs files from the round 000 release.

Trusted setup: round 011 (Xavier Okolie)

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 19:24

Round 011 of Gloam's trusted setup: one contribution, by Xavier Okolie, on top of round 010.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly eleven contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Next contributor: download round-011.zip, unzip it inside contracts/ceremony/, and follow CONTRIBUTE.md with round number 011. To check this round yourself, use the .r1cs files from the round 000 release.

Trusted setup: round 010 (Bob)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 19:07

Round 010 of Gloam's trusted setup: one contribution, by Bob, on top of round 009.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly ten contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Next contributor: download round-010.zip, unzip it inside contracts/ceremony/, and follow CONTRIBUTE.md with round number 010. To check this round yourself, use the .r1cs files from the round 000 release.

Trusted setup: round 009 (SamY)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 18:40

Round 009 of Gloam's trusted setup: one contribution, by SamY, on top of round 008.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly nine contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

To check this round yourself, use the .r1cs files from the round 000 release.

Trusted setup: round 008 (Maverick)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 18:16

Round 008 of Gloam's trusted setup: one contribution, by Maverick, on top of round 007.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly eight contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Next contributor: download round-008.zip, unzip it inside contracts/ceremony/, and follow CONTRIBUTE.md with round number 008. To check this round yourself, use the .r1cs files from the round 000 release.

Trusted setup: round 007 (Romeo)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 17:42

Round 007 of Gloam's trusted setup: one contribution, by Romeo, on top of round 006.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly seven contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Next contributor: download round-007.zip, unzip it inside contracts/ceremony/, and follow CONTRIBUTE.md with round number 007. To check this round yourself, use the .r1cs files from the round 000 release.

Trusted setup: round 006 (GodwinXbt)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 17:14

Round 006 of Gloam's trusted setup: one contribution, by GodwinXbt, on top of round 005.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly six contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Next contributor: download round-006.zip, unzip it inside contracts/ceremony/, and follow CONTRIBUTE.md with round number 006. To check this round yourself, use the .r1cs files from the round 000 release.

Trusted setup: round 005 (wilcardjayx)

Pre-release

Choose a tag to compare

@cryptoduke01 cryptoduke01 released this 17 Oct 16:59

Round 005 of Gloam's trusted setup: one contribution, by wilcardjayx, on top of round 004.

Checked before publishing: every key comes from round 000 and the public phase 1 file, with exactly five contributions. The contribution hashes are in manifest.json inside the zip and in TRANSCRIPT.md.

Next contributor: download round-005.zip, unzip it inside contracts/ceremony/, and follow CONTRIBUTE.md with round number 005. To check this round yourself, use the .r1cs files from the round 000 release.