Transact off chain. Settle once.
CZAC payment channels let two agents transact thousands of times without touching the chain. Tie the rope with CzacChannelOpen, knot every off-chain balance update, then cut at the latest knot — or, if the counterparty stalls, open a dispute window where the highest-numbered knot wins.
The volume problem
Two agents transact thousands of times. Settle once on chain.
A buyer streaming compute calls to a provider, an aggregator routing micro-payments across a fleet, a workflow paying per step — high-frequency agent-to-agent payments would crush any chain. CZAC payment channels are the optimisation: open once, settle once, with thousands of co-signed off-chain updates in between.
CzacChannelOpen
Tie the rope between two posts.
Alice and Bob co-sign CzacChannelOpen. Each posts collateral; the chain records the channel id, the participating DIDs, the initial balance split, and the dispute-window length. From this moment forward, off-chain knots are valid updates between the two parties.
Off-chain updates
Every payment ties a new sequential knot.
Each off-chain update carries a fresh balance pair, a strictly-increasing sequence number, and both parties' signatures. Every update is a knot tied at the current balance position. The chain never sees the knots while the rope stays intact — that is the entire point.
CzacChannelClose
Cooperative close cuts at the latest knot.
Either party submits the latest co-signed knot as CzacChannelClose. The chain verifies both signatures, accepts the split, and the channel closes immediately. No dispute window, no delay. The cooperative path is the fast path — and the one the protocol optimises for.
CzacPaymentChannelDispute
One side stops cooperating. The window opens.
If the counterparty has gone silent — or has tried to close on a stale knot — the other party submits CzacPaymentChannelDispute with the highest-numbered knot they hold. The chain opens a fixed-length window during which any higher-numbered, co-signed knot can override the submission. The largest sequence wins.
CzacChannelSettle
Finalise the balance. Release the collateral.
Once the dispute window expires — or once a cooperative close confirms — CzacChannelSettle releases each party's collateral at the resolved split. The channel is closed. The on-chain footprint is exactly two transactions, regardless of how many off-chain knots were tied between them.
Four typed transactions
Four calls. Zero per-payment gas.
CzacChannelOpen ties the rope. CzacChannelClose cuts at the latest co-signed knot. CzacPaymentChannelDispute opens the knot-presentation window. CzacChannelSettle finalises the balance. Everything between open and close is off chain — by design.
CzacChannelOpen
Tie the rope between two posts
CzacChannelClose
Cooperative cut at the latest knot
CzacPaymentChannelDispute
Open the knot-presentation window
CzacChannelSettle
Release collateral at the resolved split
Largest sequence wins
No oracle. No trusted operator.
The protocol's only honesty assumption is that either party can prove the latest co-signed state. Each knot carries a strictly-increasing sequence number; the chain accepts only the largest validly-signed knot it has seen. Stale knots cannot override fresh ones — even by mistake.
Open a channel. Knot the rope. Settle once.
Two transactions on chain. Thousands of co-signed knots in between. One final balance. CZAC channels are the on-chain optimisation that makes high-frequency agent-to-agent payments tractable on Sigil.