proveAggregation
Prove an aggregation: resolve the network's aggregation circuit artifacts (from its CircuitConfig), flatten the supplied witness, and run it through the config's prover (default Rust/arkworks). Returns the Groth16 proof + public signals, ready for the operator's on-chain submit.
Import
import { proveAggregation } from "@0xcurvy/curvy-sdk/actions";Usage
const witness = await generateAggregationCircuitInputsFromNotes({ inputNotes, ... });
const { proof, publicSignals } = await proveAggregation({ witness });Signature
function proveAggregation(parameters: ProveAggregationParameters): Promise<ProofResult>Returns
Promise<ProofResult>
The action resolves or returns the value shown in the signature.
Parameters
witness
- Type:
AggregationCircuitInputs - Required: yes
The aggregation witness from generateAggregationCircuitInputsFromNotes. Input generation stays separate; this action only flattens + proves.
const result = await proveAggregation({
witness,
});networkSlug
- Type:
string - Required: no
Network whose deployed aggregation circuit to prove against; defaults to the active network.
const result = await proveAggregation({
witness,
networkSlug,
});config
- Type:
CurvyConfig - Required: no
Curvy config to use. Defaults to the ambient config.
const result = await proveAggregation({
witness,
config,
});Errors
Errors from config resolution and the underlying SDK operation are propagated to the caller.
Related
- Interacting with assets guide
buildAggregateRequest— Build a submit-ready aggregation proof from committed notes.submitToChain— Submit a built aggregator proof on-chain with the caller's wallet client.relaySubmission— Relay a built proof via the SDK's relay service — no EVM wallet, no gas.waitForRelay— Poll a relayed submission to the requested lifecycle milestone.
Source
packages/@0xcurvy/sdk/src/actions/proving/proveAggregation.ts