ZSwap: A Shielded Atomic Swap Specification for Zcash — Grant Application & Request for Review
Hi all —we’re Stallion Labs, and we’ve submitted a $50,000 Zcash Community Grants application for ZSwap: a formal specification, feasibility verification, and testnet demonstration of a non-custodial, privacy-preserving atomic swap protocol for shielded ZEC.
GitHub application: Grant Application - zswap by stalllion labs · Issue #453 · ZcashCommunityGrants/zcashcommunitygrants · GitHub
Full technical architecture (C4 diagrams, protocol sequence, security model): ZSwap: Shielded Atomic Swap Protocol for Zcash - Google Docs
The short version
Atomic swaps are named directly on ZCG’s own wishlist under Interoperability. No trust-minimized swap exists today that (a) works with shielded ZEC without sacrificing privacy, and (b) is confirmed against Orchard’s actual code rather than an assumed or invented mechanism. This grant is scoped narrowly and honestly: a specification and testnet proof-of-concept, not a production system — because we think the two genuinely open questions here deserve to be resolved and reviewed before anyone asks for implementation funding, not after.
What we’re proposing
Instead of an on-chain hash-timelock (which would correlate both legs of a swap and defeat the point of using the shielded pool), the protocol uses an adaptor signature over RedPallas — Orchard’s Schnorr-variant signature scheme. Completing one party’s spend authorization signature necessarily reveals a secret that unlocks the counterparty’s funds, with nothing observable on-chain tying the two legs together.
The mechanism relies on orchard::pczt::Action::apply_signature, which we’ve independently confirmed against orchard crate v0.12.0 source: it accepts an externally-produced redpallas::Signature<SpendAuth>, verifies it against the action’s stored verification key, and applies it — no fork of orchard-rs required.
Where this sits relative to existing work — we want to be upfront about this
- Zwap (app.zwap.exchange, live since May 2026) claims an Orchard-native trustless shielded swap, but its described mechanism has drawn credible public objections — that it relies on hash-opcode primitives Orchard’s fixed proving circuit doesn’t actually have. Our mechanism is different in kind: it operates purely at the signature level via a hook we’ve confirmed exists, not an invented opcode. We think this distinction holds, but it needs to survive the same level of scrutiny Zwap’s claims received here, not just our own say-so.
- kayabaNerve’s ASMR ( GitHub - MerosCrypto/asmr: Atomic Swaps for Meros and other cryptocurrencies · GitHub ) already implements genuine adaptor-signature swaps for other chains, with a documented limitation (one party’s refund path depends on counterparty cooperation). Our formal ordering proof needs to explicitly account for this, not repeat it.
- A 2023 proposal (also called “Zwap,” by @hanh) first raised adaptor-signature-based shielded swaps for Zcash and hit the same cross-curve compatibility question we’re tackling, but didn’t proceed past discussion.
- A related but different (transparent-only, non-shielded) cross-chain swap proposal was submitted to ZCG in May 2026 and declined in June 2026.
We’re citing all of this because we’d rather have it raised by us than discovered by a reviewer.
The two open questions we most want scrutinized
- Cross-curve secret compatibility. No published construction exists yet for Pallas paired with either secp256k1 (Bitcoin) or Ed25519 (Solana). This milestone benchmarks directly against Zwap’s own published DLEQ construction and ASMR, rather than starting from a blank page.
- Lock/reveal ordering. We need a formal proof that no sequence of actions lets one party extract the secret before the other’s claim is already irrevocable — the same subtlety BTC↔XMR adaptor swaps (Farcaster, UnstoppableSwap) had to solve carefully.
@strahncryptography and @kayabaNerve — given your engagement with the Zwap and ASMR threads specifically, we’d genuinely value your early scrutiny here, before rather than after formal review. If either of the two questions above looks wrong on its face, that’s exactly the kind of thing we’d rather hear now.
Team
We’re a small team (Stallion Labs) — full backgrounds are in the GitHub application. We don’t have a completed prior ZCG grant to point to, so we’re especially open to technical pushback as a substitute for track record.
Happy to answer questions here or on the GitHub issue.

