Private Leveraged Trading for Pre-IPO Assets
The first DeFi Dark Pool powered by Fully Homomorphic Encryption
- Award
- The Problem
- Our Solution
- How FHE Works
- Dark Pool Architecture
- Tradeable Assets
- Key Features
- System Architecture
- Session Wallet
- Price Mechanism
- Trading Flow
- Fee Structure
- Smart Contracts
- Tech Stack
- Quick Start
Pendex won the Zama Developer Program Builder Track Award (December 2025)
Recognized for demonstrating real-world FHE applications in DeFi
Traditional DeFi perpetual trading platforms expose everything on-chain:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TRADITIONAL PERP PROTOCOL (PUBLIC) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Position: 0x1234...5678 β
β βββ Size: $50,000 LONG β Everyone sees this β
β βββ Entry Price: $157.25 β Front-runners exploit this β
β βββ Leverage: 10x β Liquidation hunters target this β
β βββ Liquidation Price: $141.52 β Whales manipulate to trigger this β
β βββ Owner: 0xABC...123 β Copy traders follow this β
β β
β Result: Front-running, liquidation hunting, copy trading attacks β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Attack Vector | Description | Impact |
|---|---|---|
| Front-Running | MEV bots see your trade before execution | Worse execution price |
| Liquidation Hunting | Whales push price to trigger liquidations | Forced position closure |
| Copy Trading | Others mirror your trades without consent | Alpha extraction |
| Stop Loss Raids | Visible stop losses get targeted | Premature exits |
Pendex encrypts everything using Zama's Fully Homomorphic Encryption:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PENDEX DARK POOL (ENCRYPTED) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Position: 0x1234...5678 β
β βββ Size: 0x7f3a...encrypted β Nobody can see β
β βββ Entry Price: 0x8b2c...encrypted β Front-running impossible β
β βββ Leverage: 0x1d4f...encrypted β Liquidation hunting impossible β
β βββ Direction: 0x9a3e...encrypted β Long or Short? Unknown β
β βββ Owner: 0xf2e1...encrypted β Optional: Full anonymity β
β β
β Result: Trade with complete privacy - even validators can't see β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Fully Homomorphic Encryption (FHE) allows computation on encrypted data without decryption:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TRADITIONAL vs FHE ENCRYPTION β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β TRADITIONAL: β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β Encryptedβ -> β DECRYPT β -> β Process β -> β Encrypt β β
β β Data β β β οΈ β β β οΈ β β Again β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β β β
β DATA EXPOSED DURING PROCESSING! β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ZAMA FHE: β
β ββββββββββββ ββββββββββββββββββββββββββββ ββββββββββββ β
β β Encryptedβ -> β Process while encrypted β -> β Encryptedβ β
β β Data β β β
SECURE β β Result β β
β ββββββββββββ ββββββββββββββββββββββββββββ ββββββββββββ β
β β
β DATA NEVER EXPOSED - EVER! β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Type | Usage | Example |
|---|---|---|
euint64 |
Encrypted 64-bit unsigned integer | Balance, Price, Size |
ebool |
Encrypted boolean | Long/Short direction |
eaddress |
Encrypted address | Anonymous position owner |
| Category | Operations | Use Case |
|---|---|---|
| Arithmetic | FHE.add(), FHE.sub(), FHE.mul(), FHE.div() |
P&L calculation |
| Comparison | FHE.gt(), FHE.lt(), FHE.ge(), FHE.eq() |
Liquidation checks |
| Conditional | FHE.select() |
Branchless encrypted logic |
| Negative | FHE.neg() |
Two's complement for losses |
| Access Control | FHE.allow(), FHE.allowThis() |
Decryption permissions |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PRIVACY GUARANTEES β
ββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββ€
β β ENCRYPTED (Hidden) β β
PUBLIC (Visible) β
ββββββββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββββ€
β β β
β β’ Position size β β’ Asset being traded (SpaceX, OpenAI) β
β β’ Entry price β β’ Position exists (not details) β
β β’ Leverage amount β β’ Total Open Interest (aggregated) β
β β’ Long/Short direction β β’ Mark prices from oracle β
β β’ Profit & Loss β β’ Liquidity score β
β β’ Wallet balance β β’ Trading timestamps β
β β’ Order trigger prices β β
β β’ Owner address (optional) β β
β β β
ββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββ
What an observer sees:
"Wallet 0x123 has 3 positions on Pendex"
What they DON'T see:
"Wallet 0x123 is $50K long on SpaceX with 5x leverage, entry $180"
6 high-growth private companies available for trading:
| Company | Category | Base Price | Valuation | Symbol |
|---|---|---|---|---|
| OpenAI | AI | $250 | $250B | OPENAI |
| Anthropic | AI | $95 | $95B | ANTHR |
| SpaceX | Aerospace | $180 | $180B | SPACEX |
| Stripe | FinTech | $48 | $48B | STRIPE |
| Databricks | Data | $55 | $55B | DTBRKS |
| ByteDance | Social | $165 | $165B | BYTDNC |
Synthetic Share Price = Company Valuation / 1,000,000,000 shares
Example: SpaceX
$180B valuation Γ· 1B shares = $180 per synthetic share
| Feature | Real Pre-IPO Shares | Pendex Synthetic |
|---|---|---|
| Ownership | Company equity | Price exposure only |
| Voting Rights | Yes | No |
| Dividends | Yes | No |
| Short Selling | Very difficult | Easy (1-click) |
| Leverage | Requires margin account | Built-in 1-10x |
| Minimum Investment | $100,000+ | $1 |
| KYC Required | Yes (accredited) | No |
| Trading Hours | Business hours | 24/7 |
| Privacy | Fully tracked | FHE encrypted |
Trade privately without exposing positions. No front-running, no copy trading, no liquidation hunting.
One-time wallet setup stores an encrypted session key on-chain using FHE. Trade without MetaMask popups!
No vault deposits required. Get sUSD from faucet and trade immediately.
Set stop-loss and take-profit orders that are invisible to MEV bots.
Optional full anonymity - even your wallet address is encrypted.
Stake LP tokens to earn 50% of trading fees. Trader losses = LP gains.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PENDEX ARCHITECTURE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ
β USER WALLET β
β (MetaMask) β
ββββββββββ¬βββββββββ
β
ββββββββββββββββββββΌβββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β FRONTEND β β SESSION WALLET β β FHE SDK β
β (Next.js 14) β β (Popup-free) β β (Encryption) β
ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ ββββββββββ¬βββββββββ
β β β
βββββββββββββββββββββΌββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ETHEREUM SEPOLIA + ZAMA FHE β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β SHADOW VAULT (Core) β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β β
β β β Encrypted β β Anonymous β β Encrypted β β β
β β β Positions β β Positions β β Limit Orders β β β
β β β β β β β β β β
β β β β’ euint64 coll β β β’ eaddress own β β β’ euint64 trig β β β
β β β β’ euint64 size β β β’ euint64 coll β β β’ euint64 size β β β
β β β β’ euint64 entr β β β’ ebool isLong β β β’ ebool isLong β β β
β β β β’ ebool isLong β β β β β β β
β β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ β
β β β β β
β βΌ βΌ βΌ β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β SHADOW USD β β SHADOW ORACLE β β LIQUIDITY POOL β β
β β (ERC-7984) β β β β (GMX-style) β β
β β β β β’ Base prices β β β β
β β β’ Encrypted β β β’ Demand mod β β β’ Encrypted LP β β
β β balances ββββββββΊβ β’ OI tracking ββββββββΊβ balances β β
β β β’ Confidential β β β’ 6 assets β β β’ Fee sharing β β
β β transfers β β β β β β
β βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββ β
β β WALLET MANAGER β β
β β (Session Keys) β β
β β β β
β β β’ Encrypted key β β
β β storage (FHE) β β
β β β’ EIP-712 decrypt β β
β βββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Every transaction requires a MetaMask popup β Poor UX for active traders
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SESSION WALLET FLOW β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ β
β β SETUP (One-time) β β INITIALIZE (Each session) β β
β βββββββββββββββββββββββββββββββ€ βββββββββββββββββββββββββββββββ€ β
β β β β β β
β β 1. Generate random wallet β β 1. Connect main wallet β β
β β 2. Encrypt private key β β 2. Sign EIP-712 message β β
β β with FHE β β 3. Decrypt session key β β
β β 3. Store encrypted key β β from on-chain β β
β β on WalletManager β β 4. Session ready! β β
β β 4. Fund with 0.01+ ETH β β (no more popups) β β
β β β β β β
β βββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Aspect | Protection |
|---|---|
| Limited Permissions | Session wallet can ONLY execute trades, not access main wallet |
| Encrypted Storage | Private key is FHE encrypted on-chain |
| Owner-Only Decrypt | Only main wallet owner can decrypt session key |
| Minimal Risk | Worst case: only lose small ETH amount for gas |
| Amount | Trades Possible |
|---|---|
| 0.1 ETH | ~1 trade |
| 0.5 ETH | ~3 trades |
| 1.0 ETH | ~6+ trades |
FHE transactions are more expensive due to encryption overhead (~0.15 ETH per trade)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β PRICE FORMULA β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Mark Price = Base Price Γ (1 + Demand Modifier) β
β β
β βββββββββββββββββββ βββββββββββββββββββββββββββ β
β β BASE PRICE β + β DEMAND MODIFIER β β
β βββββββββββββββββββ€ βββββββββββββββββββββββββββ€ β
β β β β β β
β β Latest funding β β (Long OI - Short OI) β β
β β round valuation β β βββββββββββββββββββ β β
β β β β 10,000 β β
β β Example: β β β β
β β OpenAI = $250 β β Range: -20% to +20% β β
β β β β β β
β βββββββββββββββββββ βββββββββββββββββββββββββββ β
β β
β Example Calculation: β
β βββββββββββββββββββββ β
β Base Price: $250 (OpenAI) β
β Long OI: $50,000 | Short OI: $30,000 β
β Demand Modifier: ($50K - $30K) / $10K = +0.2% (+2%) β
β Mark Price: $250 Γ 1.02 = $255 β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Scenario | Effect |
|---|---|
| More Longs than Shorts | Price pushed UP (max +20%) |
| More Shorts than Longs | Price pushed DOWN (max -20%) |
| Equal Long/Short | Price = Base Price |
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1 β β Connect Wallet β
β β β Connect MetaMask and switch to Sepolia testnet β
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2 β β Setup Session Wallet (One-time) β
β β β Create session wallet, encrypt key with FHE, store on-chain β
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3 β β Fund Session Wallet β
β β β Send 0.1-0.5 ETH for gas fees β
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4 β β Get sUSD β
β β β Claim test tokens from faucet (Wallet page) β
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5 β β Select Asset & Configure Position β
β β β Choose asset, set Long/Short, leverage (1-10x), and collateral β
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 6 β β Open Position (No Popup!) β
β β β Session wallet signs transaction automatically β
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 7 β β Close Position & Collect Profits β
β β β Close when ready, profits added to sUSD balance β
βββββ ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Fee Type | Rate | Description |
|---|---|---|
| Trading Fee | 0.3% | On position open/close |
| Liquidation Fee | 1.0% | If position is liquidated |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FEE DISTRIBUTION β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Total Fees Collected β
β β β
β βββββββββββ΄ββββββββββ β
β β β β
β βΌ βΌ β
β βββββββββββββ βββββββββββββ β
β β 50% β β 50% β β
β β LP Stakersβ β Protocol β β
β β β β Treasury β β
β βββββββββββββ βββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Collateral: $1,000
Leverage: 5x
Position Size: $5,000
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β If price increases 10%: β
β Profit = $5,000 Γ 10% = $500 (+50% on collateral) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β If price decreases 10%: β
β Loss = $5,000 Γ 10% = $500 (-50% on collateral) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Liquidation at -100% collateral loss (varies by leverage) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Contract | Address | Description |
|---|---|---|
| ShadowVault | 0x2ECB31ac17cF357B33CD81AA23983f39249c2322 |
Core trading engine |
| ShadowOracle | 0x4e819459EEE3061f10D7d0309F4Ba39Af5A68f81 |
Price oracle |
| ShadowUSD | 0x6ABe3F3791B4Cee0f47dA1F10B4106c50C0EE6BC |
ERC-7984 stablecoin |
| ShadowLiquidityPool | 0x548F8CbA6Fa4717BC6890D0f3175094c1FEeaa87 |
LP staking |
| WalletManager | 0x4de6E26b438e61ead479f46BCe309D5d0a16bD71 |
Session key storage |
ShadowVault.sol (Core)
βββ openPosition() # Encrypted position opening
βββ closePosition() # Encrypted position closing
βββ openAnonymousPosition() # With eaddress (full anonymity)
βββ placeLimitOrder() # Encrypted trigger price
βββ liquidatePosition() # Automatic at -100%
ShadowUSD.sol (ERC-7984)
βββ confidentialBalanceOf() # Returns encrypted balance
βββ confidentialTransfer() # Encrypted token transfer
βββ setOperator() # Grant transfer permissions
βββ faucetMint() # Testnet token minting
ShadowOracle.sol
βββ getMarkPrice() # Base + demand modifier
βββ updateOpenInterest() # Track Long/Short OI
βββ getAssetInfo() # Asset metadata
WalletManager.sol
βββ storeSessionKey() # FHE-encrypted key storage
βββ getSessionKey() # Decrypt with EIP-712
βββ revokeSessionWallet() # Invalidate session
| Layer | Technology | Purpose |
|---|---|---|
| Smart Contracts | Solidity 0.8.24 | Core protocol logic |
| FHE | Zama fhEVM 0.9.1 | Encryption layer |
| FHE SDK | @zama-fhe/relayer-sdk | Client encryption |
| Frontend | Next.js 14, React 18 | User interface |
| Web3 | wagmi 2.x, viem | Blockchain interaction |
| Wallet | RainbowKit | Wallet connection |
| Charts | TradingView Lightweight | Price visualization |
| Styling | Tailwind CSS | UI styling |
- Node.js v20+
- MetaMask browser extension
- Sepolia ETH (from faucet)
# Clone repository
git clone https://github.com/Himess/shadow-protocol.git
cd shadow-protocol
# Install frontend dependencies
cd frontend && npm install
# Start development server
npm run dev- Visit https://shadow-protocol-nine.vercel.app/
- Connect MetaMask (switch to Sepolia)
- Go to Wallet β Get sUSD from Faucet
- Go to Trade β Set up Session Wallet
- Open your first encrypted position!
Built by Himess
BSD-3-Clause-Clear - See LICENSE for details.
Pendex - Trade in the shadows, not in the spotlight.