Making privacy the default standard in DeFi β not an optional feature.
ShadowSend is a next-generation privacy dApp built on the Midnight Network. It leverages Zero-Knowledge (ZK) proofs to enable anonymous asset transfers and atomic swaps, ensuring that your financial data remains your own business β forever.
| Resource | Link |
|---|---|
| π¬ Demo Video | ShadowSend Video |
| π Presentation (PPT) | ShadowSend |
| π GitHub | NikhilRaikwar/ShadowSend |
| π Live Demo | https://shadowsend.vercel.app/ |
Send tokens privately where both the recipient address AND the amount are cryptographically hidden via ZK-SNARKs. Supports:
- Shielded β Shielded (
mn_shield-addr_preprodβmn_shield-addr_preprod) - Unshielded β Shielded (shield your assets)
- Multi-recipient batching in a single transaction
Exchange assets privately without intermediaries using ZK intent-based atomic swaps:
- Zero front-running risk β trade details inside a Snark
- Anti-MEV by design
makeIntent()broadcasts encrypted swap intents- Atomic settlement ensures either full completion or rollback
Real-time breakdown of your balances and activity:
- Private Pool (shielded tNIGHT) vs Public Pool (unshielded tNIGHT)
- Live transaction history synced from the Midnight Indexer
- Pending tx detection with on-chain confirmation tracking
- Auto-refresh every 10 seconds
Toggle per-transaction between:
- Shielding Active β amounts and recipients cryptographically hidden
- Public Mode β standard unshielded transaction
Secure, private bridging from Ethereum, Polygon, Arbitrum, Optimism β Midnight Network.
User (Browser)
β
βββ ShadowSend UI (React + TypeScript)
β ββ SendPrivatelyTab β multi-recipient shielded sends
β ββ SwapTab β ZK intent-based atomic swaps
β ββ PrivacyDashboard β live balance + tx feed
β
βββ Midnight Lace Wallet (DApp Connector)
β ββ getShieldedAddresses()
β ββ makeTransfer([{kind, type, value, recipient}])
β ββ makeIntent(inputs, outputs)
β ββ submitTransaction(tx) β ZK proof generated here
β
βββ Midnight Network (Preprod)
ββ Blockchain (shielded transactions)
ββ Indexer API (https://indexer.preprod.midnight.network)
ββ Explorer (https://explorer.preprod.midnight.network)
1. User fills form β 2. Wallet builds SNARK β 3. Tx submitted β 4. Confirmed on-chain
(address + amount) (all data encrypted) (opaque ZK proof) (balance updated)
| Component | Technology |
|---|---|
| Blockchain | Midnight Network (Preprod Testnet) |
| Wallet Connector | Midnight Lace (Official DApp Connector) |
| Zero-Knowledge | Compact / ZK-SNARKs |
| Frontend Framework | React 18 + TypeScript |
| Styling | Tailwind CSS + Custom Glass UI |
| Animations | Framer Motion |
| State Management | React Context API |
| Data Fetching | TanStack Query |
| Notifications | Sonner |
| Icons | Lucide React |
| Build Tool | Vite |
- Node.js 18+
- Yarn
- Midnight Lace Wallet browser extension
- Midnight Preprod testnet configured in wallet
git clone https://github.com/NikhilRaikwar/ShadowSend.git
cd ShadowSend/frontendyarn installEnsure your local environment is configured:
- β Midnight Lace Wallet extension installed
- β Wallet switched to Midnight Preprod network
- β
Midnight Indexer accessible (
https://indexer.preprod.midnight.network/api/v3/graphql) - β
Prover server running at
http://localhost:6300(optional, for local proving)
yarn dev --port 3001Open http://localhost:3001 in your browser.
- Connect Wallet β Click "Connect Wallet" β Midnight Lace opens β Approve on Preprod
- Enter recipient β Use a valid Midnight Preprod address:
- Shielded:
mn_shield-addr_preprod1... - Unshielded:
mn_addr_preprod1...
- Shielded:
- Enter amount β In tNIGHT (supports decimals)
- Enable Shielding β Toggle ON for private transfer (default: ON)
- Click "Send Shielded" β Wallet generates ZK proof, tx submitted
- Confirm in wallet β Approve the shielded transaction
- Connect wallet
- Enter swap amount in "You Send"
- Click "Swap Privately"
- Wallet broadcasts a ZK intent β atomic swap executes privately
- Click + to add recipients
- Enter unique address + amount per recipient
- Single shielded transaction covers all recipients
| Property | Detail |
|---|---|
| Non-Custodial | Private keys never leave Midnight Lace wallet |
| ZK Proof Generation | Happens client-side inside the wallet |
| No Data Storage | ShadowSend stores zero user data |
| Address Validation | Strict prefix validation (mn_addr_preprod / mn_shield-addr_preprod) |
| Amount Precision | Converted to microunits (Γ1,000,000) to avoid precision loss |
| Open Source | Fully auditable codebase |
ShadowSend uses the native tNIGHT asset on Midnight Preprod:
Native Asset ID: 0000000000000000000000000000000000000000000000000000000000000000
No custom contract deployment required for end-users. The Midnight Lace DApp Connector handles all ZK proof generation and transaction construction natively.
frontend/
βββ src/
β βββ components/
β β βββ SendPrivatelyTab.tsx # Multi-recipient shielded send
β β βββ SwapTab.tsx # Atomic private swap
β β βββ PrivacyDashboard.tsx # Balance + transaction feed
β β βββ WalletConnectButton.tsx # Lace wallet integration
β β βββ TokenSelector.tsx # tNIGHT / tDUST picker
β β βββ Navbar.tsx
β β βββ Footer.tsx
β βββ contexts/
β β βββ MidnightWalletContext.tsx # Wallet state + API
β βββ pages/
β β βββ Index.tsx # Main dApp page
β β βββ NotFound.tsx
β βββ index.css # Glass UI design system
βββ public/
βββ shadowsend.png # Ghost logo
Built with β€οΈ for the Midnight Network Hackathon 2026.
Team: ShadowSend Team
Builder: @NikhilRaikwarr
- β Privacy-first token transfers with ZK-SNARK shielding
- β Atomic private swaps via ZK intents
- β Real-time privacy dashboard with live blockchain sync
- β Full Midnight Lace DApp Connector integration
- β Multi-recipient batch shielded sends
- β Beautiful, production-grade UI with dark glass aesthetic
DeFi today is entirely transparent β anyone can see your wallet balance, transactions, and trading patterns. ShadowSend proves that financial privacy is achievable on a public blockchain using zero-knowledge cryptography. Midnight Network makes this possible. We made it accessible.
MIT License β see LICENSE for details.
Β© 2026 ShadowSend Team. Protected by Midnight ZK.