The Intendo
A conditional commitment: “I will, if enough others will too.” Participants pledge into a campaign; the pool deploys only once enough have joined — and the count is hidden in zero-knowledge until it fires, so no one can game the threshold by watching it fill. The coordination-market primitive, covenant-native on Kaspa.
The problem it solves: nobody wants to be first
Most coordination fails not from selfishness but exposure: people want the same outcome, but nobody can afford to commit first and be left holding the bag if others don't follow. The fix is infrastructural — a way to pledge safely and reversibly until the pack forms.
A commitment that fires together or not at all. Below threshold nothing executes and every pledge is refundable; at threshold the pool deploys atomically. And crucially, the accumulation is opaque — you can't wait until it's one short and snipe the last slot, because you can't see how close it is.
What you'd actually build with it
Anywhere people want the same thing but can't afford to move first — and where seeing the count fill would let someone game it. The live market above cycles through exactly these:
Fair token / LP launch
Liquidity providers seed the pool together — nobody goes first and gets dumped on, nobody snipes the last slot. It forms only at threshold.
Union card check
Sign only if a majority signs too. The count is hidden until quorum, so no employer can retaliate against the early signers. Opacity is the whole point.
Group-buy / bulk order
Chip in for a wholesale price that unlocks only when enough buyers commit. Nobody prepays alone; below threshold everyone is refunded.
Assurance contracts
Fund an audit, a bounty, or a public good all-or-nothing. Hit the goal and it deploys; miss it and every backer gets their pledge back.
Come-forward escrow
Commit to come forward only if N others independently do. Hidden until the threshold — safety in provable numbers, the classic “afford to be first” problem.
Atomic migrations
LPs or members move in one atomic step — nobody is stranded in the old venue while everyone else leaves.
The common thread: a commitment that fires together or not at all, that's refundable until it does, and whose progress is unwatchable until it fires.
How the tally stays hidden
1 · Commit
A pledge is a shielded deposit into ONE shared pool, tagged to a campaign inside the commitment hash. On-chain it’s indistinguishable from any other deposit.
2 · Commingle
Every campaign’s commits pile into the same pool. Its value grows, but which notes belong to which campaign — and how many — is invisible.
3 · Prove
When a campaign reaches threshold, a Groth16 proof shows “≥ threshold tagged notes exist” and consumes them — revealing only the boolean, never the count.
4 · Fire
A covenant co-spend releases exactly the threshold to the campaign’s target. Consensus verified the pack formed; the tally was never on-chain.
The key insight: opacity only needs to hold while it's filling. Once it fires, knowing the final count enables no manipulation. So the tally lives off-chain / in a proof — and the on-chain fee is a single Groth16 verify, no matter the pack size.
Built & proven on Kaspa L1
The full stack runs on testnet-10, each layer debugger-proven under the real script engine, then taken live.
Transparent intendo
commit → fire → refund live, incl. a genuine pack-of-3 forming and firing atomically.
ZK threshold circuit
a Groth16 proof of “≥ threshold tagged notes” — provable at threshold, unprovable below it, count hidden.
Opaque covenant
the on-chain tally field is DELETED; fire is gated purely by the proof, which also consumes the notes.
Shared pool + campaigns
many campaigns commingle in one pool via a circularity-free two-covenant co-spend — real value opacity.
Six commingled notes across two campaigns; campaign A fired via a ZK threshold proof that released its stake to its target and consumed only its notes — the pool value never revealed A's tally of three.
The honest trust model
No one can forge a threshold (the proof is sound), redirect a payout (it's bound to the campaign), or double-count / re-fire a note (nullifiers). Committers reclaim if the pack never forms. All enforced by consensus.
A coordinator holds the note openings and builds the fire proof — it can delay, but it can't forge, steal, or misdirect, and it can't profit from waiting. Opacity is vs. the public, not the coordinator. Removing even that (via MPC) is future work.
Testnet-10 only · unaudited prototype · a single coordinator currently holds the note openings · not for real value. A concrete, fee-dense use of Toccata covenants + ZK: exactly the kind of L1-native coordination that pays for security as emission tapers.