Inspiration -XRPL marketplaces require user verification for premium features, but traditional methods expose sensitive financial data. We were inspired by Midnight's privacy-preserving ZK proof capabilities to create a solution that allows XRPL marketplaces to verify user credentials without compromising user privacy. The goal was to bridge the privacy-first Midnight network with the widely-used XRPL ecosystem.

What it does- The DApp enables privacy-preserving cross-chain verification for XRPL marketplaces. Users generate Zero-Knowledge Proofs on the Midnight network about their XRPL holdings and activity (NFT ownership, XRP balance, transaction history, royalty compliance, trust lines). These proofs are signed with DUST tokens and verified on XRPL without revealing sensitive financial data. Marketplaces can verify proofs using our SDK without accessing user's actual portfolio information.

How we built it- We built the system using:

5 Compact smart contracts written in Midnight's Compact language for ZK circuits Compact CLI v0.31.0 for contract compilation React + Vite for the frontend with TypeScript Midnight SDK for 1AM wallet integration and DUST token transactions XRPL SDK for XUMM wallet integration and transaction submission Supabase for proof registry with 24-hour expiration Cross-chain bridge that coordinates Midnight proof generation with XRPL verification Marketplace SDK for easy marketplace integration DApp-based verification service that reads proof hashes from XRPL transaction memos and verifies them using compiled Midnight circuits

Challenges we ran into- Compact runtime version mismatch: Compiled contracts expected runtime 0.16.0 but the installed version was 0.15.0. We solved this by manually patching the version check in all compiled contracts.

WASM loading errors in Vite: The compiled Compact contracts use WebAssembly, which Vite couldn't handle by default. We solved this by installing and configuring vite-plugin-wasm. XRPL cannot natively verify Midnight ZK proofs: XRPL is a simple ledger without smart contracts. We solved this by creating a DApp-based verification service that reads proof hashes from XRPL transaction memos and verifies them using the compiled Midnight circuits.

Accomplishments that we're proud of

  • Successfully wrote and compiled 5 Compact smart contracts for different XRPL verification scenarios Implemented a working cross-chain verification system between Midnight and XRPL -Created a complete marketplace SDK for easy integration by third-party platforms Solved the runtime version mismatch issue that was blocking development -Built a privacy-preserving verification system that protects user data while enabling marketplace verification -Implemented proper XRPL transaction types (NFTokenAcceptOffer, Payment, AccountSet, TrustSet) for different proof types

What we learned- Midnight's Compact language: How to write ZK circuits using Compact syntax and compile them

-Cross-chain verification architecture: How to bridge two different blockchain networks with different capabilities -XRPL transaction types: How to use different XRPL transaction types for different verification scenarios -DUST token integration: How to use Midnight's native token for transaction fees and proof attestation -Privacy-preserving proof systems: How ZK proofs can enable verification without data exposure -WASM integration: How to handle WebAssembly modules in Vite applications -Marketplace SDK design: How to create developer-friendly SDKs for third-party integration

What's next for Ignition zkp dapp- intergrate this dapp with my xrpl marketplace.

  • Mobile app: Develop a React Native mobile application for on-the-go proof generation -Multi-chain support: Extend to other blockchains (Ethereum, Solana) for broader market reach -Advanced marketplace features: Add batch verification, real-time status updates, and analytics dashboard -Performance optimization: Implement Redis caching and optimize proof generation speed

Built With

Share this project:

Updates