Stream salaries that vest by the second, verified privately on-chain.
StreamZero escrows USDC under a cryptographic commitment. Employees withdraw vested pay by submitting a zero-knowledge proof the vault checks on Stellar — so amounts, salary rates, and identities stay off the public ledger entirely.
Three steps, zero leakage
Employer locks & commits
USDC is escrowed in the Soroban vault under a Poseidon commitment to the salary rate and start time. The amount, the rate, and who's being paid never appear on-chain.
Pay vests every second
From the start time, funds vest linearly. The employee can see exactly how much is claimable in real time — the ledger sees only an opaque commitment.
Employee proves & withdraws
The browser builds a Groth16 zero-knowledge proof that the requested amount is genuinely vested. The vault verifies the proof on-chain and releases funds — revealing nothing else.
How the proof becomes trust
Two halves work together: a Stellar smart contract that verifies math, and a zero-knowledge proof that hides everything but its own validity.
The Soroban vault
A Rust smart contract escrows USDC and stores only a Poseidon commitment per stream. When a claim arrives it runs the Groth16 verification equation using Stellar's BN254 pairing host functions (Protocol 25/26) — a single pairing check, on-chain.
- Commitment-only state — no rate, total, or payee stored
- Replay & front-running protection via on-chain nullifier and recipient binding
- Standard SEP-41 USDC transfers — swap in the real asset with no vault change
The proof, in your browser
The circuit is specified in Noir for a human-readable statement, while the production prover is an arkworks Groth16 circuit over BN254, compiled to WebAssembly. Proofs are generated client-side — the secret never leaves the device.
- Proves vested ≥ withdrawn + amount without revealing any of them
- Six public inputs bind the proof to time, amount, and recipient
- Poseidon commitment links the proof to the funded stream
What a chain observer sees
- Salary rate
- Total compensation
- Employee identity
- That a withdrawal links to a given stream
- An opaque commitment was funded
- A valid withdrawal occurred
- The vault's aggregate balance
The stack
Pay privately. Prove publicly.
Fund a stream or claim one — both run on Stellar testnet right now.