
Meridian Finance
02.2026 – 06.2026
StellarSorobanGroth16ZK ProofsPoseidonNext.jsTailwind CSSNode.jsMongoDB
Privacy-preserving on-chain trade bond protocol built on Stellar.
- Confidential bond lifecycle (draft → pending → live → settled) using Poseidon-based Merkle commitments.
- Groth16 ZK credential signing with on-chain verification replacing OTP flows.
- Selective disclosure via Merkle proofs for verifiable claims without exposing full trade data.
What I learned
Poseidon hash trees, Groth16 ZK proofs, Soroban smart contracts on Stellar, selective disclosure via Merkle proofs
The Vision
The Bond Lifecycle
Meridian Finance uses a 4-stage bond lifecycle:
Draft → Pending → Live → Settled
Each transition is governed by Poseidon-based Merkle commitments stored on-chain, with the full bond data encrypted off-chain.
Zero Knowledge: Groth16 Credential Signing
We replaced traditional OTP flows with Groth16 ZK credential signing:
- Credentials are signed off-chain
- Verification happens on-chain via Soroban
- Non-repudiation is guaranteed without revealing identity
Selective Disclosure via Merkle Proofs
The Stack
- Stellar / Soroban — smart contracts
- Groth16 — ZK proof system
- Poseidon hash — ZK-friendly Merkle commitments
- Next.js — frontend dApp
- Node.js + MongoDB — backend and off-chain storage
- Wallet Adapter — wallet auth
What I'd Do Differently
Links
- Live: meridianfinance.io
- GitHub: