‹ Back to overview
The mechanism

Coverage, settled by proof.

There is no claims department, no committee, and no admin key.
A default either produces a valid proof of who is owed, or it does not.
The contract verifies that one proof on Stellar, then pays from the reserve.

The flow

Four steps, one of them is a proof

01 / Underwrite

Fund the reserve

Underwriters deposit collateral into a non-custodial vault and earn premiums. Cover sold can never exceed the reserve, checked on every purchase.

02 / Cover

Buy protection

Bondholders buy cover against default and pay a premium. The amount each holder buys stays private, stored only as a Poseidon commitment.

03 / Prove

Settle a default

Anyone runs the settlement program off-chain. It reads the on-chain payment record and proves who is owed, by a published formula, in zero knowledge.

04 / Payout

Verify and pay

The contract verifies the proof on Stellar and releases each payout from the reserve. A verified proof is the only thing that can move it.

The rule

What a settlement actually computes

The formula is published and version-pinned.
The proof attests that the payouts followed it exactly.

For an epoch, each owed party has an expected coupon. The settlement program reconstructs, from observed chain data, the qualifying payments that actually arrived on an asset-received basis. The difference is the shortfall.

shortfall = owed − qualifying_payments_received
payout(buyer) = cover(buyer) × (shortfall ÷ owed)
Each cover buyer is paid their committed cover, scaled by the realized shortfall. The sum of all payouts can never exceed the reserve.

If the issuer paid in full, the shortfall is zero, every payout is zero, and there is nothing to settle. The program will not produce a proof for a non-default, so no payout can be authorized. That is the property that keeps the design honest: protection that did not trigger cannot be claimed.

Qualifying payments are measured carefully. Receipts count on an asset-received basis across classic operations and SAC transfers, muxed addresses are normalized to the base account, and a clawed-back coupon counts as a shortfall, not a payment. The rule is the same one the proof enforces.
The proof

What the zero-knowledge proof guarantees

And, just as importantly, what it does not.

What it proves

The proof attests that the published settlement program ran over the supplied inputs and produced exactly these payouts. It binds the result to the positions committed on-chain, to the instrument's pinned rules, and to the payment snapshot it was given. Tamper with any of those and verification fails.

The contract checks a single Groth16 proof using Stellar's native BN254 pairing host function. One verification authorizes the whole settlement.

What it does not prove

A proof guarantees correct computation over the inputs it was supplied, not that those inputs are the canonical truth of the world. The honest trust assumption is the integrity of the payment snapshot fed to the program.

On this build the snapshot is assembled from observed chain data; a production deployment hardens that source. Parallar states this plainly rather than overclaiming that a proof certifies reality.

How it compares

Settled by proof, not by discretion

Protection over credit is not new.
What is new is who is allowed to decide a payout.

Who authorizes a payoutPositionsFundingPortable
Parallara verified proof, no party can overrideconfidential (commitments only)funded by construction (cover ≤ reserve)yes, an on-chain asset
DeFi cover mutuala discretionary member votepublicshared pool, discretionarylimited
TradFi CDS deska committee plus a counterparty promiseprivate, off-chaincounterparty creditOTC, bilateral
Embedded tranchethe issuer's capital structuren/astructural subordinationnon-portable
A claims committee can be convinced to pay a default that never happened. This guest cannot: feed it a fully-paid epoch and it panics on honest data. A false claim is unprovable, by construction.
The architecture

One generic core, every instrument

Four contracts, separated on purpose.
Each instrument is an instance, not a fork.

Factory and registry

A registry holds instrument types; the factory deploys an instance by cloning a generic vault and settlement contract and cross-binding them. Adding a second instrument is one transaction.

Vault

Holds the reserve and the private cover commitments. Deposits and withdrawals are open; only a verified settlement can move funds to a payee. Solvency is enforced on every purchase.

Settlement

Verifies one proof against the instrument's pinned image id, checks the bindings, and executes the payouts. No admin path, no pause-and-pay, no override.

Guest program

The per-type rules, compiled to a zkVM image. New rules mean a new type entry with a new image id; live instruments stay pinned to theirs forever. Rules are never upgraded in place.

Guarantees

What cannot happen

No payout without a verified proof
There is no getter that pays from public state, no plaintext cover, and no settlement override. Verification is the sole authorization.
One settlement per epoch
An epoch settles once. Replaying the same proof, or settling before the deadline, reverts.
A non-default cannot be claimed
If the trigger did not occur, the program produces no proof. There is no input that fakes a default into existence.
Payouts cannot exceed the reserve
The sum of payouts is capped at the collateral, and stale or tampered roots are rejected at verification.
Next

Pick your side, or watch it run