Privacy-First Stablecoin Transfers
Because your crypto balance is nobody's business but yours.
When you send someone USDC, they can look up the transaction on Etherscan and see your entire wallet balance - every token, every transaction, your complete financial history exposed from a simple payment.
This creates real problems:
| Scenario | Privacy Risk |
|---|---|
| Payroll transactions | Coworkers can figure out your salary |
| Freelance payments | Clients can see all your other clients and what they're paying you |
| Business spending | Competitors can analyze your business operations |
| Holding significant crypto | Visible wealth creates security risks - scammers target rich wallets |
There's even a term for the worst case: the "$5 wrench attack" where someone threatens you physically because they know exactly how much you're worth.
Traditional finance solved this decades ago. Venmo doesn't show your bank balance. Credit cards don't expose your history. But in crypto, every transaction is a public declaration of your wealth.
Orbit fixes this using zero-knowledge proofs. When you send USDC through Orbit, the recipient gets their money but can't see where it came from, can't look up your balance, can't trace your history. The payment appears from an unlinkable address - exactly how payments should work.
- Your tokens get "shielded" into RAILGUN's private pool
- We generate a ZK proof that mathematically proves you can spend those tokens without revealing which ones or who you are
- The recipient gets paid through an "unshield" transaction with zero on-chain connection to the original
The cryptography makes linking them impossible, not just difficult.
Private peer-to-peer transfers with complete on-chain unlinkability.
Concept
Implementation
Key Components:
- Waku Relayer + Groth16 proofs - Decentralized proof relay with zkSNARK verification
- UTXO + SpendKey model - Unspent transaction outputs for enhanced privacy
- EIP-2612 Permits - Gasless signatures for seamless UX
- Proof of Innocence - Verification layer ensuring fund legitimacy
Private token swaps across chains with aggregated routing.
Concept
Implementation
Key Components:
- Shielded swap execution - Swap tokens without exposing wallet history
- Multi-DEX aggregation - Routes through Uniswap, 1inch, LI.FI, Mayan for best rates
- Cross-chain support - Private swaps across different networks
- Relayer swap executioner - Handles all on-chain complexity
ZK proof generation uses worker threads, and Bun's implementation has bugs causing ~30% of proofs to fail silently. We use Node.js (npx tsx) for proof-heavy operations while keeping Bun for the frontend.
After shielding, there's a 60-90 second "Proof of Innocence" verification before funds become spendable. Users saw tokens but couldn't spend them. We split balance into "spendable" vs "pending POI" with a countdown timer.
Client-side and server-side key derivation produced different results due to encoding differences, causing "wallet not found" errors. We cache the canonical key server-side on wallet creation.
We wanted zero-gas UX but Ethereum needs ETH for every transaction. We use EIP-2612 permits (gasless signatures) plus a relayer that executes and pays for all on-chain operations.
RAILGUN only supports one token per ZK proof, but users want to pay Alice in USDC and Bob in DAI together. We group by token, shield each separately, wait for POI in parallel, then generate proofs sequentially with balance sync waits between each.
Transfers take 2-3 minutes and Next.js doesn't support SSE natively. We built a custom ReadableStream implementation that pushes progress events to the client.
| Category | Technologies |
|---|---|
| Frontend | Next.js 16, React 19, TailwindCSS, Framer Motion, Three.js |
| Web3 | wagmi, viem, RainbowKit |
| Privacy | RAILGUN Protocol, snarkjs (Groth16) |
| Standards | EIP-2612, EIP-7702 |
| Extension | Chrome Extension Manifest V3 |
| Storage | LevelDB |
# Clone the repository
git clone https://github.com/anomalyco/orbitux.git && cd orbitux
# Install dependencies
bun install
# Configure environment
cp .env.example .env.local # Add RELAYER_PRIVATE_KEY and RPC URL
# Start development server
bun dev- Privacy and Security
- DeFi / Payments
- User Experience
- Account Abstraction




