@wonderland/create-cabure-ceremony
v2.0.1
Published
CLI wizard that scaffolds a fully deployable ceremony project
Downloads
557
Readme
@wonderland/create-cabure-ceremony
CLI wizard that scaffolds a deploy-ready Groth16 Phase 2 trusted setup ceremony app in one command.
What it generates
- A single Next.js app (frontend + API routes)
ceremony.config.tswith ceremony settings (name, circuits, tiers, dates, UI copy)circuits/directory — populated automatically with.r1csfiles when you provide a circuit path in prompt #4, otherwise empty for manual setup- API route stubs under
app/api/ceremony/* - Operator scripts:
setup:ptau,init:ceremony,finalize:ceremony,reset:ceremony - Minimal
vercel.jsonand.env.example
Wizard prompts
- Project name
- Target contributions (
100,500,1000, or custom) - End date (optional
YYYY-MM-DD) - Circuit artifacts path (optional)
- If provided,
.r1csfiles are discovered and copied intocircuits/ - If skipped,
circuits/remains empty
- If provided,
Usage
npx @wonderland/create-cabure-ceremonyAfter generation:
cd <generated-project-slug>
npm install
# If you skipped prompt #4, copy your .r1cs files into ./circuits first
npm run setup:ptau # downloads the correct PPoT .ptau and updates config
# Configure .env (see generated README for full details)
npm run init:ceremony # generate genesis zkey and upload to storage
npm run devKey scripts in generated project
| Script | Description |
| --------------------------- | ---------------------------------------------------------------------- |
| npm run setup:ptau | Detect circuit constraints, download the correct PPoT ptau, and update config |
| npm run init:ceremony | Generate genesis zkey, upload to Blob, write manifest to KV. Saves local copies and transcript to public/genesis/ |
| npm run finalize:ceremony | Apply beacon (Ethereum RANDAO by default), verify zkeys. Saves final zkeys, vkeys, and transcript to public/finalize/ |
| npm run reset:ceremony | Wipe all KV keys and Blob zkeys for a fresh start |
Initialization generates public/genesis/init-transcript.json and public/genesis/{circuitId}.genesis.zkey for each circuit.
Finalization uses the RANDAO reveal from the latest finalized Ethereum beacon chain slot by default for public verifiability. Outputs are saved to public/finalize/ (transcript, verification keys, finalized zkeys). See the generated project README for advanced beacon options.
Local development (inside this monorepo)
From repository root:
pnpm --filter @wonderland/create-cabure-ceremony build
pnpm --filter @wonderland/create-cabure-ceremony test