OVERVIEW
Overview
ShieldSwap is a non-custodial swap interface that converts transparent assets (BTC, ETH, SOL, USDC) into shielded Zcash (ZEC). The defining property: once your funds enter the Zcash shielded pool, the public trail ends. There are no accounts, no KYC, and no custodial balance — you send from your own wallet and receive directly into a shielded address you control.
The system has three layers:
- Interface layer — this site. Builds the swap order, validates your destination address and displays the one-time deposit address. It never touches your keys.
- Routing layer — watches for your deposit, executes the conversion into ZEC through liquidity sources, and constructs the shielded payout transaction.
- Settlement layer — the Zcash network itself, where the payout lands as an encrypted note in the Orchard shielded pool.
ZCASH
Zcash & Shielded Pools
Zcash is a Bitcoin-derived blockchain with an optional privacy layer. Transactions happen in one of several pools, and the pool determines what an outside observer can see:
Transparent
t1… / t3…
Fully public, like Bitcoin. Sender, receiver and amount are visible to anyone.
Sapling
zs1…
Shielded. Values and parties are encrypted; validity is proven with Groth16 zk-SNARKs.
Orchard
u1… (unified)
Current generation. Uses the Halo 2 proving system — no trusted setup, recursive proofs.
ShieldSwap pays out exclusively into the Orchard pool. Every shielded transaction hides three things at once: the sender, the receiver and the amount. The blockchain only records that some valid note was spent and some new note was created — nothing more.
Why Orchard
Orchard's Halo 2 proofs require no trusted setup ceremony, verify in milliseconds, and support proof recursion — the same technology that powers Zcash's future scalability roadmap. It is the strongest privacy pool available on any major chain today.
ZKP
Zero-Knowledge Proofs
A zero-knowledge proof lets a prover demonstrate that a statement is true without revealing why it is true. In Zcash, every shielded transaction carries a proof that convinces the network of all of the following, while revealing none of the underlying data:
- The spender actually owns the input notes (they know the spending key).
- The input notes exist in the pool and have never been spent before (a nullifier is published to prevent double-spends, but it cannot be linked to the note).
- Inputs equal outputs — no ZEC is created from thin air. The balance check happens on encrypted values using homomorphic commitments.
Orchard uses Halo 2, a proving system built on the Pasta curves (Pallas and Vesta). Two properties matter for swaps:
No trusted setup
Older systems (Groth16, used by Sapling) required a multi-party ceremony whose compromise would allow undetectable counterfeiting. Halo 2's setup is fully transparent — there is nothing to compromise.
Fast verification
Proofs verify in single-digit milliseconds, so full nodes — and eventually light clients — can validate shielded transactions cheaply at scale.
ADDRESSES
Unified Addresses
The destination field on the swap page accepts addresses starting with u1 (unified) or zs1 (Sapling). A unified address is a container: it bundles receivers for multiple pools — Orchard, Sapling and optionally transparent — into a single string.
When ShieldSwap pays out to a unified address, it always selects the Orchard receiver. This means you can paste the default address from any modern Zcash wallet (Zashi, Ywallet, Nighthawk) and the funds land in the most private pool automatically.
Validation
The interface checks the address prefix and length before allowing a swap. A malformed address can never receive a payout — the swap button stays disabled until the address parses as a valid shielded receiver.
Viewing keys: every shielded address has a corresponding full viewing key that can decrypt incoming notes without being able to spend them. Only you hold these keys; ShieldSwap never sees them and cannot inspect your balance after payout.
PIPELINE
Swap Pipeline
Each swap moves through five stages:
01 · QUOTE
The interface computes an indicative output from current rates and the 0.5% service fee. The quote locks when the deposit address is generated.
02 · DEPOSIT
A one-time deposit address is derived for your swap. You send the exact amount from your own wallet. The address is never reused, so deposits cannot be clustered.
03 · DETECT & CONVERT
The routing layer watches the source chain. After the required confirmations, it executes the conversion into ZEC through aggregated liquidity.
04 · SHIELD
The ZEC is moved into the Orchard pool. From this block onward, no public data connects the deposit to what happens next.
05 · PAYOUT
A shielded transaction delivers encrypted notes to your address, following the privacy mode you selected (see below).
The design is non-custodial by construction: there is no account balance to hack, no withdrawal queue, and no hot wallet holding user funds between sessions. Each swap is an isolated, atomic pipeline.
MODES
Privacy Modes
Even inside a shielded pool, timing and amount can leak information. If 0.05 BTC goes in and 4.7123 ZEC comes out sixty seconds later, an observer watching both chains can guess the link. The three privacy modes trade speed for unlinkability:
SHIELDED
~6 min · 1 hop
Direct payout to your Orchard address. Amounts and recipient are encrypted on-chain, but timing roughly matches your deposit. Best for everyday use.
DELAYED
~45 min · 2 hops
Funds rest inside the shielded pool for a randomized interval before release. Breaks timing correlation between deposit and payout.
SPLIT
~2 hr · 4 hops
The payout is divided into multiple randomized notes released over time. No single output matches your deposit amount. Maximum unlinkability.
The segmented bar in the swap panel shows the hop count of the selected mode — each hop is an additional shielded transaction between your deposit and your final balance.
SECURITY
Security Model
- No keys, ever. The interface runs entirely in your browser. It never asks for a seed phrase, private key or wallet signature.
- One-time addresses. Deposit addresses are single-use and derived per swap, preventing address-reuse clustering.
- Encrypted memos. Payout notes carry an encrypted memo only your wallet can read, used for swap receipts.
- What we can see: the deposit transaction (it is public on the source chain) and the fact that a payout occurred. What we cannot see: your balance, your other transactions, or any link between your swap and your future spending.
Your responsibilities
Privacy is a system property. Use a fresh shielded address per swap, avoid reusing deposit amounts, and prefer the Delayed or Split modes when the amounts are large or unusual. Network-level metadata (your IP) is your own to protect — Tor or a VPN is recommended.
LIMITS
Limits & Demo Status
This is currently a demonstration interface. The rates shown (BTC 98,000 · ETH 3,600 · SOL 180 · ZEC 52 USD) are fixed sample values, and the deposit address displayed after a swap is a placeholder — do not send real funds to it.
A production deployment additionally requires:
- A live rate oracle and liquidity routing backend.
- Real per-swap deposit address generation on each source chain.
- A Zcash node infrastructure constructing Orchard payouts.
- Per-swap and daily limits, plus expiry and refund handling for failed deposits.
The architecture documented above is the target design; the demo implements the full user-facing flow so the experience can be evaluated end to end.
