Trade on the app
The web app at dev.privora.xyz runs the full confidential trade loop (deposit, place, manage, withdraw), proving every step locally in your browser. Your wallet is for custody and identity only; it never signs a trade.
Privora is live on Solana devnet. You'll need a Solana wallet (Phantom, Solflare, Backpack). Below is the whole loop, start to finish.
The loop#
- 1Connect a wallet. The app uses it for two things only, custody of your funds and a sign-in (SIWS) that deterministically derives your shielded keypair on-device. It is never asked to sign a trade.
- 2Get test funds. On devnet, the in-app faucet mints you test-USDC and sends a little SOL to your wallet so it can pay for its own deposit. (Mainnet has no faucet.)
- 3Deposit. Shield collateral into a confidential balance note. This is one of the two intentionally linkable steps, you sign the token transfer, and the only time your wallet touches a trade-adjacent action.
- 4Place an order. Choose long or short, a size, a price, and a leverage. The app builds a zero-knowledge proof in your browser that the order is funded and correctly margined, then hands it to the relayer to submit. You sign nothing; you hold no SOL.
- 5Manage. Watch the lit book and your fills. Your position card shows your real numbers locally; on-chain, only a commitment exists. Cancel a still-unfilled quote to reclaim its escrow, or let a filled position ride, funding and liquidation are automatic and need no one online.
- 6Close. Hit Close on a position and the app exits it for you, it nets your position against an equal opposite leg into one balance note worth your collateral plus realized PnL, minus the trading fee. Optionally set a stop-loss / take-profit first (below), the app watches the mark and closes you automatically when it trips.
- 7Withdraw. Spend a balance note back to tokens. This is the second linkable step (the recipient is public), and it's bound into the proof, so a relayer can't redirect it.
Order types, margin & stops#
- Limit (default). A confidential resting order at your price. Your size shows on the lit book; who you are, your leverage, and your liquidation level do not.
- Iceberg. Show only a small peak on the book while the true size stays hidden in the order commitment, the book refreshes the next slice as each peak fills. Use it to work size without tipping it.
- Isolated margin (default). Each position has its own escrow and its own set-and-forget liquidation seal, blast-radius is one position.
- Cross-margin (opt-in). Pool collateral across several same-direction positions and get liquidated on aggregate health, more capital-efficient, and it never weakens an isolated position's safety. Toggle it per pool.
Stop-loss & take-profit#
Set a stop-loss and/or take-profit on a position and the app watches the public mark; when it crosses your level, it fires a normal close. The trigger price is client-side, it lives only in your browser and is never written on-chain, so there's no resting stop for anyone to see or hunt. The flip side: the tab has to be open for the automatic trigger to fire (your funding and liquidation are still enforced on-chain regardless, this is only the convenience stop).
Fees#
Two parts. A trading fee (a % of fill notional) is charged on close and deducted confidentially, your payout note simply commits to the amount net of fee, so the fee can't be used to back out your hidden size. Makers earn a rebate; takers pay. Plus a flat per-submission network fee that covers the relayer's gas (size-independent, so it leaks nothing). On devnet the live oracle market runs a small taker fee / maker rebate; the demo market runs fee-free.
What the app proves vs. what it submits#
- Proved in-browser (snarkjs WASM): the deposit/place/cancel/withdraw validity. The witness, your secret position, never leaves the tab.
- Submitted by the relayer: only the proof + public inputs. The relayer pays gas and learns nothing it could use to link or front-run you.
- Read from the indexer: the book, trades, candles, and the mark, a chain-derived, reproducible read path. No private query reveals your interest.
Two markets#
Devnet runs a real SOL-PERP market bound to a Pyth oracle (the funding crank ticks hourly), and a demo market for walking through liquidation on cue. The market switcher in the app lists both; the app defaults to the live oracle market.