Soroban Testnet Pilot

Hold stablecoins.
Transfer & Swap privately.

The confidential wallet and DEX swap layer for Stellar. Transfer instantly or swap assets on-chain with zero public link between sender and receiver.

Network
Soroban
ZK Engine
Groth16
Assets
XLM / USDC
Deposits
0
Pools
8 Active
9:41
V
Veil Pro
TESTNET
Shielded
1,250.00
1,000 XLM250 USDC
GABC DEFG HIJK LMNO
Send
Receive
Swap
Recent Activity
Received
2m ago
+100.00 USDC
Sent
45m ago
-50.00 XLM
Swap
1h ago
100 XLM → USDC
Wallet
Send
Receive
Keys

How It Works

Deposit into a shielded pool, send privately or swap assets — no public link between sender and receiver.

Step 01

Fund your wallet

Create a wallet with a PIN. Deposit XLM or USDC into a fixed-denomination shielded pool. Your secret note is saved automatically.

Step 02

Send privately

Enter a recipient and amount. Your wallet auto-selects the right note, generates a Groth16 ZK proof in the browser, and submits it on-chain.

Step 03

Swap assets privately

Withdraw as a different token via the on-chain swap router. Deposit XLM and withdraw USDC — breaks transaction graphs while changing settlement assets.

Step 04

Disclose selectively

Generate timelocked reveal keys for auditors. They can inspect transaction details after the timelock expires — but never spend your funds.

Built for Real Privacy

On-chain ZK proofs, client-side proving, and compliance-oriented disclosure.

Groth16 on Soroban

ZK proofs verified on-chain using Stellar's native BN254 host functions. No off-chain trust.

Poseidon Hashing

ZK-friendly hash over BN254 Fr for circuits and on-chain Merkle tree. Matching parameters ensure validity.

Relayer Network

Submit withdrawals through a relayer so recipients don't need gas. Random delays decorrelate timing.

Timelocked Reveal Keys

User-held keys that disclose transaction details after a configurable period. Can prove activity, can't spend funds.

Privacy Pools

Prove membership in an approved set without revealing which deposit is yours. Inspired by Vitalik's Privacy Pools paper.

Client-side Proving

Proofs are generated in the browser using snarkjs WASM. Your secret note never leaves your device.

Under the Hood

The privacy pipeline — from deposit commitment to zero-knowledge withdrawal.

  Depositor                    Veil Pool (Soroban)               Recipient
  ─────────                    ──────────────────               ──────────
      │                               │                              │
      │── deposit(commitment) ───────▶│                              │
      │   [100 XLM + Poseidon hash]   │                              │
      │                               │◀── Merkle tree insert        │
      │                               │                              │
      │── share secret note (QR) ────────────────────────────────▶  │
      │                               │                              │
      │                               │◀── withdraw(proof) ──────── │
      │                               │    [Groth16 ZK proof]        │
      │                               │                              │
      │                               │── BN254 pairing verify ──▶  │
      │                               │── nullifier check ────────▶ │
      │                               │── transfer 100 XLM ───────▶ │
      │                               │                              │
   hidden link ◀────────────────── zero knowledge ──────────────▶ funds

Tech Stack

  • Circom 2.0 circuits + snarkjs (Groth16)
  • BN254 curve with native Soroban host fns
  • Poseidon hash (circomlib + on-chain)
  • Incremental Merkle tree (depth 20)
  • Client-side WASM proof generation

Security & Compliance

  • No public sender-recipient link
  • Nullifier prevents double-spending
  • On-chain proof verification (no trust)
  • Timelocked reveal keys for auditors
  • Privacy Pools subset compliance

Hold dollars. Move privately.

Deposit stablecoins, send privately, or execute DEX swaps — all with selective disclosure for compliance.