zkparty
trusted-setup-frontend
TypeScript

The KZG Ceremony web browser implementation

Last updated Jun 19, 2026
231
Stars
64
Forks
17
Issues
0
Stars/day
Attention Score
63
Language breakdown
No language data available.
Files click to expand
README

KZG Ceremony Frontend

This React App is a graphic interface to interact with the Ethereum KZG Ceremony. Participants can checkout the website at ceremony.ethereum.org.

Start

To start this app execute the following steps:

  • Setup environment variables:
  • Sequencer API URL
- Ubuntu: export REACTAPPAPI_ROOT=http://localhost:3000 - Windows (Powershell): $env:REACTAPPAPI_ROOT="http://localhost:3000"
  • Environment
- Ubuntu: export REACTAPPENVIR - Windows (Powershell): $env:REACTAPPENVIR
  • Install dependencies: yarn install
  • Start application: yarn start
Note: If the Rust code is updated, copy the /wasm directory from the wrapper library in the public/ directory. Most of the times the wasm-worker.js text will not change.

Build for IPFS

A build for IPFS should result in the same CID as others who have built from the same source. However, it is necessary to use a compatible environment and tool set to ensure that differences aren't introduced. Docker images are available to provide the required environment.

The computation code is written in Rust and compiled to WASM. The compiled WASM package is available, for convenience, in the public/wasm folder, but a thorough build for IPFS will involve rebuilding that package. The code can be found here. The zkparty/wasm-pack-wrapper docker image includes the code as well as the environment for compiling to WASM.

Build and add using Docker

  • Set required environment variables
- export REACTAPPAPI_ROOT=https://seq.ceremony.ethereum.org - export REACTAPPENVIRONMENT=production
  • Build the WASM wrapper Docker image, or docker pull zkparty/wasm-pack-wrapper
  • Pull a Docker image for node.js: docker pull node:19-bullseye
  • Build the entire site, and run an IPFS node: ./docker-build.sh
  • Wait for the IPFS node to complete its startup. Watch the container's logs: docker logs ipfs-host
  • Add the site to IPFS: docker exec ipfs-host ipfs add -r /export
  • Run the ceremony from the IPFS site:
- Note the hash generated for /export in the previous step - In your browser, navigate to http://localhost:8080/ipfs/<hash>
  • Stop the container once you're finished: docker stop ipfs-host
This will result in a series of log messages reporting the CID of each object in the folder. The CID of the export folder itself is the important one for our purposes.
...
added QmYEJyDBrmvhFerMRRKdpoLGxxVveRrr64qc1wDNNqMj8Z export/wasm
added QmaqKhGJBvJ7N43iRmrbjvW8xniWyMWvV5kp38o6FmujKm export
 30.14 MiB / 30.14 MiB  100.00%

The latest build has this CID: QmYEJyDBrmvhFerMRRKdpoLGxxVveRrr64qc1wDNNqMj8Z

or, in base32: bafybeifzusldqkb2f5qujmzj5oz7qmb2dxdp6dbbpcqd7dv74wzcyaf3ba

The site can be added to pinning services by uploading the build folder.

You can access it using the ENS latest.kzgceremony.eth

Note: The IPFS deployment was built using WASM wrapper-small-pot tag verify and kzg-ceremony-sequencer commit cf4dcbc857973bb1efdb72d87bae975b4cc2b179.

Building from the Audited commit

An audit of the code was conducted by Sigma Prime. The audit report notes the commit hash at which the audit was restested following implementation of the audit recommendations.

To build the site at that commit:

  • Checkout the wrapper-small-pot repo at tag sigp-audit. Build the WASM code as per above.
  • Checkout this repo at tag frontend-audit.
  • Set environment variables for running live. The .env file should contain these entries:
REACTAPPAPI_ROOT=https://seq.ceremony.ethereum.org
REACTAPPENVIRONMENT=prod
  • Build the site (see above).
The IPFS CID for the audited code is QmevfvaP3nR5iMncWKa55B2f5mUgTAw9oDjFovD3XNrJTV

© 2026 GitRepoTrend · zkparty/trusted-setup-frontend · Updated daily from GitHub