Web3

Zstellar Main

JavaScriptNext.jsNode.jsRustVercelZero-Knowledge ProofsSmart Contracts

Role

Developer

Technologies

JavaScriptNext.jsNode.jsRustVercelZero-Knowledge ProofsSmart Contracts

Overview

zStellar is a shielded payments dApp built on Soroban and an on-chain Groth16 verifier on Stellar. A user deposits a public Stellar asset into a shielded pool, transfers value privately to other users inside the pool, and withdraws back to a public address — all without revealing transfer amounts or the sender → receiver link on-chain.

Every zero-knowledge proof is generated client-side in WebAssembly (Groth16 over BN254 with a Poseidon2 hash), and private transfers and withdrawals are pushed through a server-side relayer so the note owner's address never appears on-chain.

One pool. Three flows. One rule: your balance and your counterparties stay private. > > - Shield moves a public asset into the pool. Your in-pool balance hides behind note commitments. > - Private Transfer pays another user inside the pool. The amount and the sender → receiver link stay hidden. > - Private Withdraw cashes out to any public Stellar address. The relayer submits, so your address never appears.

The Challenge

Stellar is fully transparent by design. Every payment, amount, and account balance is public and permanently indexed. For real-world payments — payroll, donations, vendor settlements — that transparency is a liability, not a feature. The existing options fall short: None of them offer a compliance-friendly anonymity set, where deposits can be gated by an approval list without de-anonymizing honest users.

System Architecture

The Solution

User flow — Connect → Shield → Receive / Pay privately → Withdraw to public Proof flow (browser) — Derive keys → Build circuit inputs → Prove (Groth16) → Prepare Soroban tx On-chain flow

Key Features

  • 1
    Connect Freighter on Testnet and fund with the in-app faucet if needed
  • 2
    Shield a public asset into the pool (you sign; tokens are pulled in and a note commitment is created)
  • 3
    Withdraw any time to a public G... address; the relayer submits, so your address never appears
  • 4
    Track every action through the proof stepper and the View-transaction explorer link
  • 5
    Derive keys from a single Freighter signature (cached locally in OPFS)
  • 6
    Build inputs from your unspent notes, the target amount, and the recipient

Siap untuk memulai
proyek berikutnya?

Halo! 👋

Kirim pesan langsung

firdaussyah03@gmail.com
ATAU
Saya butuh bantuan untuk...