Skip to content

ProofComposer

SIP Protocol API Reference v0.7.4


SIP Protocol API Reference / ProofComposer

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:447

Main interface for the proof composition system.

ProofComposer orchestrates the composition of proofs from multiple proof systems, handling:

  • Provider registration and management
  • Proof generation across systems
  • Proof composition and aggregation
  • Verification of composed proofs
  • Caching and optimization
const composer = new ProofComposer(config)
// Register providers
await composer.registerProvider(noirProvider)
await composer.registerProvider(halo2Provider)
// Generate proofs
const proof1 = await composer.generateProof({
circuitId: 'funding_proof',
privateInputs: { balance: 1000n },
publicInputs: { minRequired: 100n },
})
const proof2 = await composer.generateProof({
circuitId: 'validity_proof',
privateInputs: { sender: '0x...' },
publicInputs: { intentHash: '0x...' },
})
// Compose proofs
const result = await composer.compose({
proofs: [proof1.proof!, proof2.proof!],
strategy: ProofAggregationStrategy.PARALLEL,
})
// Verify composed proof
const verification = await composer.verify({
composedProof: result.composedProof!,
})

readonly config: ProofCompositionConfig

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:451

Current configuration

updateConfig(config): void

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:457

Update configuration.

Partial<ProofCompositionConfig>

Partial configuration to merge

void


registerProvider(provider, options?): Promise<ProofProviderRegistration>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:465

Register a proof provider.

ComposableProofProvider

The provider to register

RegisterProviderOptions

Registration options

Promise<ProofProviderRegistration>

Registration entry


unregisterProvider(providerId): boolean

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:472

Unregister a provider.

string

Provider ID to unregister

boolean

true if provider was removed


getProvider(providerId): ComposableProofProvider | undefined

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:479

Get a registered provider by ID.

string

Provider ID

ComposableProofProvider | undefined

Provider or undefined


getProviderForSystem(system): ComposableProofProvider | undefined

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:486

Get provider for a specific proof system.

ProofSystem

Proof system

ComposableProofProvider | undefined

Provider or undefined


getProviders(): ProofProviderRegistration[]

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:492

Get all registered providers.

ProofProviderRegistration[]

Array of provider registrations


getAvailableSystems(): ProofSystem[]

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:498

Get available proof systems.

ProofSystem[]

Array of available systems


generateProof(request): Promise<ProofGenerationResult>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:505

Generate a proof using the appropriate provider.

ProofGenerationRequest

Proof generation request

Promise<ProofGenerationResult>

Generation result


generateProofs(requests): Promise<ProofGenerationResult[]>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:512

Generate multiple proofs in parallel.

ProofGenerationRequest[]

Array of proof requests

Promise<ProofGenerationResult[]>

Array of generation results


compose(options): Promise<CompositionResult>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:519

Compose multiple proofs into a single composed proof.

ComposeProofsOptions

Composition options

Promise<CompositionResult>

Composition result


aggregate(options): Promise<AggregationResult>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:526

Aggregate proofs into a single proof (if supported).

AggregateProofsOptions

Aggregation options

Promise<AggregationResult>

Aggregation result


verify(options): Promise<ProofVerificationResult>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:533

Verify a composed proof.

VerifyComposedProofOptions

Verification options

Promise<ProofVerificationResult>

Verification result


verifySingle(proof): Promise<boolean>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:540

Verify a single proof.

SingleProof

Proof to verify

Promise<boolean>

true if valid


convert(options): Promise<ConversionResult>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:547

Convert a proof to a different format.

ConvertProofOptions

Conversion options

Promise<ConversionResult>

Conversion result


getCompatibilityMatrix(): CompatibilityMatrix

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:553

Get the compatibility matrix for proof systems.

CompatibilityMatrix

Compatibility matrix


areSystemsCompatible(source, target): boolean

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:561

Check if two systems are compatible for composition.

ProofSystem

Source system

ProofSystem

Target system

boolean

true if compatible


getCacheStats(): CacheStats

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:567

Get cache statistics.

CacheStats

Cache stats


clearCache(olderThan?): void

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:573

Clear the proof cache.

number

Optional: only clear entries older than this timestamp

void


getWorkerPoolStatus(): WorkerPoolStatus

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:579

Get worker pool status.

WorkerPoolStatus

Worker pool status


scaleWorkerPool(targetWorkers): Promise<void>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:585

Scale worker pool.

number

Target number of workers

Promise<void>


setFallbackConfig(config): void

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:591

Set fallback configuration.

FallbackConfig

Fallback configuration

void


getFallbackConfig(): FallbackConfig | undefined

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:597

Get current fallback configuration.

FallbackConfig | undefined

Fallback config or undefined


addEventListener(listener): () => void

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:604

Add an event listener.

CompositionEventListener

Event listener

Unsubscribe function

(): void

void


removeEventListener(listener): void

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:610

Remove an event listener.

CompositionEventListener

Listener to remove

void


setTelemetryCollector(collector): void

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:616

Set telemetry collector.

TelemetryCollector

Telemetry collector

void


initialize(): Promise<void>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:620

Initialize the composer and all providers.

Promise<void>


dispose(): Promise<void>

Defined in: @sip-protocol/sdk/dist/interface-Bf7w1PLW.d.ts:624

Dispose of resources.

Promise<void>