Claims and payer tags use the forked circuit. They have run on the Zcash public testnet and on regtest, and are unaudited. See status.

Prove a payout round

A treasury proves it paid everyone, with one link:
The batch link verifies every payment and fails if any is dropped, added or reordered. The verifier shows totals per recipient. It carries a same-payer proof, so the round shows one treasury key paid every grant. The treasury’s address and balance stay private.

Run a campaign that counts wallets

  1. The organiser names a domain, for example round-2026.
  2. Each donor tags the payment: zceipt tag -w <wallet> -i <identity> --txid <txid> --domain round-2026.
  3. The organiser verifies each tag with --domain and counts distinct tag values. One donor splitting a gift into ten payments gives one tag.
  4. A donor with several accounts of one wallet gets one tag per account. They can merge them with a sibling-account proof (verify --siblings), but you can’t make them: the count is of wallets at most.

Airdrop: one claim per wallet

Pick a snapshot block that is already final (verify warns when it is not): a reorg would replace the tree under every claim accepted against it. The claim shows a note of at least the floor was held at the snapshot block. The claimant picks the floor, so --min (the least you accept) is required: a claim below it is refused. Two claims from one wallet carry one tag; tags in other airdrops don’t link. See distinct payers for how this works and what it doesn’t stop.