Skip to content

NextGenSoftwareUK/zypherpunk

Repository files navigation

Zephyr Wallet - OASIS Submission

A privacy-first, cross-chain wallet solution addressing all 7 tracks of the Zypherpunk Hackathon

License Next.js .NET

Overview

Zephyr is a comprehensive privacy-first wallet solution built on the OASIS platform. It provides a unified interface for managing assets across multiple privacy-focused blockchains, with built-in support for private bridges, stablecoin minting, and advanced privacy features.

Built for: Zypherpunk Hackathon (Nov 12 - Dec 1, 2025)

Why This Solution Matters

We've built infrastructure that solves critical problems in the privacy-first, cross-chain DeFi ecosystem. Our solution doesn't just address hackathon requirements—it creates the foundation for the future of private finance.

Solving Provider Ecosystem Fragmentation

The Problem:

  • Every blockchain ecosystem lives in isolation
  • Users need multiple wallets, remember different seed phrases, learn different UIs
  • Privacy chains can't easily communicate with each other or with public chains
  • Liquidity is fragmented across isolated ecosystems

Our Solution:

  • Single wallet for 6 chains (Zcash, Aztec, Miden, Starknet, Solana, Ethereum)
  • One keypair works across all chains via unified address derivation
  • Cross-chain bridges with privacy preserved
  • OASIS provider abstraction connects ecosystems without breaking them

Impact:

  • Increased adoption for each chain through unified interface
  • More liquidity as assets flow between chains
  • Interoperability while preserving each chain's unique features
  • Easier onboarding for new users

Making Privacy-First DeFi Accessible

The Problem:

  • Privacy chains have amazing technology but terrible UX
  • Learning curve is steep: shielded addresses, viewing keys, notes, etc.
  • Most users avoid privacy features because they're too complicated
  • No easy way to use private assets in DeFi protocols

Our Solution:

  • Wallet UI that makes privacy chains as easy to use as MetaMask
  • zUSD stablecoin: First truly private stablecoin backed by ZEC
  • Privacy dashboard that explains privacy levels in plain language
  • Viewing keys enable compliance without breaking privacy
  • Auto-calculations remove complexity (e.g., zUSD minting)
  • Mobile-first design that works like modern apps

Impact:

  • Privacy becomes default, not optional
  • Regular users can access advanced privacy features
  • Financial privacy is accessible to everyone, not just crypto natives
  • Sets new standard for privacy-first wallet UX

Technical Innovation: OASIS as Integration Layer

What Makes This Special:

  • Provider abstraction layer that unifies chains with completely different architectures
  • Holonic architecture enables privacy-preserving data structures
  • Universal Asset Bridge works across all chains
  • Single keypair derivation for all supported chains

Why This Technical Approach Matters:

  • Each chain keeps its unique features (Zcash's shielded pools, Aztec's private notes, Miden's STARK proofs)
  • OASIS enables interoperability without breaking what makes each chain special
  • Provider pattern makes it easy to add new chains
  • Privacy features (viewing keys, shielded transactions) work across ecosystems
  • Foundation for future cross-chain privacy innovations

Tracks Addressed

Track Sponsor
Track 1 Aztec Labs - Private Bridge
Track 2 Aztec Labs - Zcash <> Aztec Wallet
Track 3 Aztec Labs - Zcash Backed Stablecoin
Track 4 Miden - Private Bridge
Track 5 pump.fun - Solana ↔ Zcash
Track 6 Helius - Solana ↔ Zcash
Track 7 Self-Custody & Wallet Innovation

Key Features

Unified Multi-Chain Wallet

  • Single Keypair for Zcash, Aztec, Miden, Starknet, Solana, Ethereum
  • Unified Balance View across all chains
  • Cross-Chain Transactions with privacy preservation
  • Real-time Price Data from CoinGecko
  • Transaction History with privacy indicators

Private Bridge

  • Bi-directional Bridge between Zcash ↔ Aztec
  • Privacy Options: Partial notes, viewing keys
  • Bridge History tracking and status monitoring
  • Atomic Swaps with automatic rollback

Zcash-Backed Stablecoin (zUSD)

  • Mint zUSD with ZEC collateral (150% minimum ratio)
  • Redeem zUSD to unlock ZEC
  • Position Health Monitoring (safe/warning/danger/liquidated)
  • Liquidation System for undercollateralized positions
  • Yield Generation (5% APY)
  • Risk Management with automated health checks

Privacy Features

  • Privacy Dashboard with metrics and scoring
  • Viewing Key Management for auditability
  • Shielded Transaction Support
  • Privacy Recommendations based on activity
  • Privacy Score Calculation

Screenshots

Authentication with Private Avatar

Sign-in using Private Avatar

Avatar Authentication: The wallet uses OASIS avatar authentication to securely connect your identity. When you sign in with your avatar credentials, the system automatically links to the Keys/Wallet API and generates wallet addresses for all supported providers (Zcash, Aztec, Miden, Starknet, Solana, Ethereum) from a single keypair. This unified approach eliminates the need for multiple seed phrases while maintaining full self-custody.

Wallet Home Screen

Wallet Home Screen: The main dashboard displays your total balance across all chains, along with quick access to all wallet functions including sending, receiving, swapping, privacy features, and stablecoin operations.

Core Features

Send Screen Shielded Transaction
Send Screen Shielded Transaction
Send Screen: Send tokens across any supported chain with privacy options. The interface supports both transparent and shielded transactions, with automatic address validation and transaction fee estimation. Shielded Transactions: Execute private transactions on Zcash and Aztec networks. Shielded transactions hide sender, recipient, and amount while maintaining full functionality. The wallet automatically manages shielded pools and viewing keys.
Privacy Drop Claim Privacy Drop
Privacy Drop Claim Privacy Drop
Privacy Drop: Create and distribute private airdrops to multiple recipients. Privacy drops use shielded addresses to ensure recipient privacy while allowing the sender to track distribution through viewing keys. Claim Privacy Drop: Recipients can claim privacy drops using their shielded addresses. The system automatically detects available drops and provides a simple one-click claiming interface while maintaining complete privacy.

Asset Management

View Available Assets

Asset Overview: View all available assets across your multi-chain wallets. The interface shows balances for each chain (including SOL and Zcash as shown), with real-time price data and quick access to detailed views for each asset.

Token Details with Price History

Token Details: Detailed view of individual tokens showing current balance, price history from CoinGecko, transaction history, and asset-specific actions. The price charts provide historical context for informed decision-making.

Cross-Chain Swapping

Swap Asset Screen Choose Asset for Swap
Swap Asset Screen Choose Asset for Swap
Swap Interface: Initiate cross-chain swaps between any supported assets. The interface shows exchange rates, estimated fees, and transaction time. Swaps use atomic swap technology to ensure security. Asset Selection: Choose from a wide range of supported assets for swapping. The wallet supports swaps between Zcash, Aztec, Solana, Ethereum, Starknet, and Miden, with real-time balance checking and availability indicators.

Addressing Specific Ecosystem Needs

For Zcash Ecosystem

  • ZEC sitting idle—now can be used as stablecoin collateral
  • Limited DeFi options—bridge to Aztec opens private DeFi
  • Complex shielded transaction UX—simplified in unified wallet
  • Value Delivered: New use cases for ZEC holders, access to private DeFi, easier onboarding

For Aztec Ecosystem

  • Need for reliable collateral for stablecoins—ZEC is proven, private, valuable
  • User acquisition—bridge from Zcash brings established privacy coin users
  • Wallet fragmentation—unified wallet removes friction
  • Value Delivered: Better stablecoin design with ZEC backing, access to Zcash user base, improved UX

For Miden Ecosystem

  • Isolation from other privacy chains—integrated into broader ecosystem
  • Proof of interoperability—demonstrates STARK-based privacy can work with other systems
  • User onboarding—unified wallet makes Miden more accessible
  • Value Delivered: Integration into privacy-first cross-chain ecosystem, proof of concept for STARK-based privacy interoperability

For Solana Ecosystem

  • Limited privacy options—access to privacy chains via bridges
  • User wants privacy—can access Zcash/Aztec without leaving Solana tools
  • Fragmentation—unified wallet experience
  • Value Delivered: Privacy features through cross-chain bridges, access to private chains without ecosystem lock-in

Production-Ready Implementation

What We Actually Built:

  • 15,000+ lines of production code
  • 30+ React components for frontend
  • 20+ API endpoints for backend
  • 6 blockchain providers integrated
  • Complete error handling, loading states, user feedback
  • Documentation and guides

Real Features:

  • Working wallet creation and management
  • Functional stablecoin mint/redeem
  • Bridge interface with order tracking
  • Privacy dashboard with metrics
  • Price charts and transaction history
  • QR code generation

This is not just a hackathon proof-of-concept—it's real infrastructure ready for real users.

Quick Start

Prerequisites

  • Node.js 18+ (Download)
  • .NET 8 SDK (Download)
  • MongoDB (optional - can use LocalFile provider)

Installation

  1. Clone the repository

    git clone https://github.com/NextGenSoftwareUK/zypherpunk.git
    cd zypherpunk
  2. Run setup script

    chmod +x scripts/setup.sh
    ./scripts/setup.sh
  3. Start OASIS API

    The wallet requires the OASIS API backend. You have two options:

    Option A: Use Existing OASIS API

    # If you have access to OASIS API repository
    git clone <oasis-api-repo>
    cd oasis-api/ONODE/NextGenSoftware.OASIS.API.ONODE.WebAPI
    dotnet run

    Option B: Use Public API

    # Update frontend/.env.local
    NEXT_PUBLIC_OASIS_API_URL=https://api.oasisplatform.world
  4. Start Frontend

    cd frontend
    npm run dev
  5. Open Browser

    http://localhost:3000
    

Project Structure

zypherpunk/
├── frontend/                    # Next.js wallet UI
│   ├── app/                    # Next.js app router
│   │   ├── wallet/            # Wallet pages
│   │   └── api/               # API proxy routes
│   ├── components/            # React components
│   │   ├── wallet/           # Wallet components
│   │   ├── bridge/           # Bridge components
│   │   ├── stablecoin/       # Stablecoin dashboard
│   │   └── privacy/          # Privacy features
│   ├── lib/                   # Utilities and API clients
│   │   ├── api/              # API clients
│   │   └── privacy/         # Privacy utilities
│   └── public/               # Static assets
├── backend/                   # API controllers and managers
│   ├── Controllers/          # API endpoints
│   │   ├── StablecoinController.cs
│   │   └── BridgeController.cs
│   ├── Services/            # Business logic
│   │   └── BridgeService.cs
│   └── Managers/            # Core managers
│       └── Stablecoin/     # Stablecoin system
├── docs/                     # Documentation
│   ├── ZYPherPUNK_SUBMISSION_RECAP.md
│   └── ZYPherPUNK_TRACK_SPECIFIC_BRIEFS.md
└── scripts/                  # Setup scripts
    └── setup.sh

Testing

Test Wallet Creation

  1. Navigate to wallet page
  2. Click "Create Wallet"
  3. Wallets are automatically created for all supported chains

Test Bridge

  1. Ensure you have testnet tokens (ZEC and SOL)
  2. Navigate to Bridge screen
  3. Select direction (Zcash → Solana)
  4. Enter amount and destination address
  5. Click "Bridge" and monitor status

Test Stablecoin

  1. Navigate to Stablecoin dashboard
  2. Ensure you have ZEC for collateral
  3. Go to "Mint" tab
  4. Enter ZEC amount and zUSD amount
  5. Click "Mint" and monitor position

Documentation

Architecture

Frontend Stack

  • Framework: Next.js 14 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS
  • UI Components: shadcn/ui
  • State Management: Zustand
  • Charts: Recharts
  • QR Codes: qrcode.react

Backend Stack

  • Framework: .NET Core 8
  • Architecture: OASIS Provider System
  • Storage: MongoDB / LocalFile
  • Providers: ZcashOASIS, AztecOASIS, MidenOASIS, StarknetOASIS, SolanaOASIS, EthereumOASIS

Key Technologies

  • Address Derivation: Blockchain-specific (Keccak-256, Ed25519, Pedersen Hash, Bech32)
  • Price Oracle: CoinGecko API
  • Bridge: Atomic swaps with technical accounts
  • Privacy: Viewing keys, shielded transactions, partial notes

Unified Key Generation & Address Derivation

The wallet generates addresses for all supported chains from a single keypair using blockchain-specific derivation methods. This eliminates the need for multiple seed phrases while maintaining compatibility with each chain's native address format.

How It Works:

  1. Single Keypair Generation: A master keypair is generated using standard cryptographic methods
  2. Provider-Specific Derivation: Each blockchain's address is derived from the public key using that chain's specific algorithm
  3. SDK Integration: Native SDKs ensure addresses are valid and compatible with each blockchain's ecosystem

Integrated SDKs:

Provider SDK/Library Purpose Address Format
Starknet StarkSharp Pedersen hash for address derivation 0x + 64 hex chars (66 total)
Zcash Nerdbank.Zcash Unified Address generation (transparent + shielded) utest1... / u1... (Bech32m)
Ethereum Nethereum Keccak-256 hashing for address derivation 0x + 40 hex chars (42 total)
Solana Solnet Ed25519 public key encoding Base58 (32-44 chars)
Miden Miden Python SDK Bech32 address encoding mtst1... / mid1... (37 chars)
Bitcoin/Zcash NBitcoin RIPEMD160, Base58 encoding Legacy formats
Cryptography BouncyCastle.Crypto General cryptographic operations Various

Address Derivation Methods:

  • Ethereum/EVM Chains: Keccak-256 hash of public key → last 20 bytes → 0x prefix
  • Starknet: Pedersen hash of (account_class_hash, pedersen_hash(public_key, salt), constructor_calldata_hash) → 32 bytes → 0x prefix
  • Zcash: SHA256 → RIPEMD160 → TransparentP2PKHReceiver → UnifiedAddress (Bech32m)
  • Solana: Ed25519 public key (32 bytes) → Base58 encoding
  • Miden: Public key → Miden SDK address generation → Bech32 encoding (mtst1... for testnet)
  • Aztec: Uses Ethereum-style addresses (Keccak-256 derivation)

Implementation Location:

  • Core derivation logic: OASIS Architecture/NextGenSoftware.OASIS.API.Core/Helpers/AddressDerivationHelper.cs
  • Frontend integration: zypherpunk-wallet-ui/lib/unifiedWallet.ts
  • Backend API: Wallet creation endpoints automatically generate addresses for all providers

Benefits:

  • Single Seed Phrase: One mnemonic generates all addresses
  • Native Compatibility: Each address format matches the blockchain's standard
  • SDK Validation: Native SDKs ensure addresses are valid and accepted by wallets/exchanges
  • Future-Proof: Easy to add new chains by implementing their derivation method

Configuration

Environment Variables

Create frontend/.env.local:

# OASIS API URL
NEXT_PUBLIC_OASIS_API_URL=https://localhost:5004

# Use API proxy (for self-signed certificates)
NEXT_PUBLIC_USE_API_PROXY=true

API Configuration

The wallet connects to OASIS API endpoints:

  • Authentication: /api/avatar/authenticate
  • Wallet: /api/wallet/*
  • Bridge: /api/v1/orders
  • Stablecoin: /api/v1/stablecoin/*

Privacy as Default, Not Afterthought

Our Approach:

  • Privacy built into the foundation, not bolted on
  • Viewing keys enable compliance without breaking privacy
  • Privacy metrics help users understand their exposure
  • Cross-chain privacy that works seamlessly

Compliance Without Compromise:

  • Viewing keys allow selective disclosure for auditors/regulators
  • Privacy preserved by default, transparency when needed
  • Proof that privacy and compliance can coexist

User Education:

  • Privacy dashboard explains privacy levels
  • Recommendations help users improve their privacy
  • Makes complex concepts (viewing keys, shielded transactions) accessible

Impact Summary

Stakeholder Problem Solved Value Delivered
Users Complex privacy UX, fragmented wallets Simple, unified, privacy-first experience
Zcash Limited use cases, isolated ecosystem Access to private DeFi, stablecoin collateral
Aztec User acquisition, collateral sourcing ZEC-backed stablecoin, bridge from Zcash
Miden Ecosystem isolation Integration into privacy-first ecosystem
Solana Limited privacy options Privacy via cross-chain bridges
Industry Fragmented privacy solutions Unified infrastructure for privacy-first DeFi

Contributing

This is a hackathon submission. For questions or feedback:

License

MIT License

Acknowledgments

  • OASIS Platform - Infrastructure and provider system
  • Zcash Foundation - Privacy technology
  • Aztec Labs - Private smart contracts
  • Miden - Zero-knowledge VM
  • All Hackathon Sponsors - For the opportunity

Implementation Statistics

  • Frontend Components: 30+ React components
  • Backend Controllers: 3 major controllers
  • API Endpoints: 20+ REST endpoints
  • Blockchain Providers: 6 providers
  • Lines of Code: ~15,000+
  • Tracks Addressed: 7/7 (100%)

Links


Built for the Zypherpunk Hackathon 2025

Zephyr: Privacy-first. Cross-chain. Unified.

About

Privacy-first cross-chain wallet for Zypherpunk Hackathon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •