Security & privacy

Privacy

What the private balance hides and what it doesn't, what's public on Solana, what the bridge sees, and recommendations.

Solana is public
wXMR is a normal token on Solana. Your Solana address, its wXMR and token balances, every trade, every deposit and every bridge withdrawal request (including the XMR address you withdraw to) are visible to anyone. Monero itself is private; the Solana side is not. The tools below reduce what can be linked — none of them make you anonymous.

Private balance (beta)

The private balance uses Helius Privacy (Solana Privacy Rings). It is on by default for new wallets: idle XMR above a 0.005 XMR public reserve (from 0.01 XMR) moves into the private balance. Before a buy, withdrawal or fee top-up, only the amount needed moves out — each such step costs one zero-knowledge proof. A deposit that goes straight into a buy is never moved in and out.

HiddenNot hidden
The private amount is not shown as a balance of your addressEach transfer into or out of the private balance, with its amount — adding them up estimates the total
Where idle funds go nextYour trades on Solana, your token positions, the public reserve
Beta: Helius Privacy is under audit and may contain bugs. Turning the toggle off never hides funds — private funds always count toward your balance.

Stealth mode (beta)

Stealth mode makes your trades harder to link to each other and to your main wallet — harder, not impossible. It is off by default — turn it on under Wallet → Stealth mode. Each new position then opens from a fresh sub-wallet derived from your account (m/44'/501'/N'/0', the same scheme Phantom uses for extra accounts), so your seed or passkey restores them on any device (Restore stealth wallets).

  • From Monero (recommended): you pay XMR from your Monero wallet, an exchange sends SOL straight to the new sub-wallet, which converts it and buys. No Solana transfer connects the sub-wallet to your main wallet; the exchange sees both sides, and timing can still link them.
  • From the private balance: the private pool pays the sub-wallet; the sub-wallet pays the fee and signs, and your account authorizes inside the zero-knowledge proof — your main wallet is not part of the transaction. The sub-wallet needs a little SOL for that fee, so its first funding should come from Monero.
  • After you sell, the proceeds go back into your private balance and the empty token accounts are closed (rent back).
  • Portfolio shows stealth positions together with everything else; each one keeps its own history.
Stealth mode makes harder to seeIt does not hide
That your positions belong to the same personAmounts moving out of and into the private pool
The link between your trades and your main walletTiming — a withdrawal followed by a buy minutes later can be correlated
What each sub-wallet trades (it is a normal Solana wallet)
Turn on the random delay (0–60 minutes before funding and before buying) for stronger separation. It makes trades slower — that is the point. Positions advance only while the terminal is open and unlocked, because your keys never leave the browser.

Privacy score

Wallet → Privacy score rates from 0 to 100 how easy your activity is to link. It is computed in your browser from this device's history and settings — nothing is sent to a server — so a new device starts without history. Each item shows what was found, how to improve it, and a button that fixes it where a setting can.

ItemPointsWhat counts
Fresh subaddress for every withdrawal20Withdrawals to an XMR address you used before lose points (bridge withdrawals publish the address on Solana)
Private balance on20Idle wXMR kept in the private pool
Stealth mode with random delay2015 for stealth mode, 5 more for a random delay
Round withdrawal amounts15More than three significant digits (e.g. 1.234567 XMR) is easy to match on both chains
Time between deposit and buy15A buy within 10 minutes after a deposit is credited
Different amounts in and out10A withdrawal within 2 % of an earlier deposit amount
Deposits through separate wallets10Share of deposits that came through their own sub-wallet (stealth deposits)
Split larger buys5At least one split buy
Your IP stays away from RPC providers10The browser's Solana RPC goes through this site; the optional direct WebSocket costs 5

Items for features this deployment or wallet doesn't support are left out of the total. The score is a guide, not a guarantee.

Split withdrawals

Withdraw → Split (2–5 parts) turns one withdrawal into several bridge withdrawals. Amounts are random but round (multiples of 0.01 XMR, at least 0.1 XMR each), the parts go out at random intervals you choose, and each goes to its own subaddress. A few thousandths of an XMR may stay in your balance so every part stays round.

  • Enter one new subaddress per part. With fewer addresses the parts repeat them, and the terminal warns you: anyone can add up parts sent to the same address.
  • Each part is a normal bridge withdrawal: simulated first, signature stored before sending, and only one part in flight at a time.
  • Parts are sent while the terminal is open and unlocked — your keys never leave the browser. A failed part pauses the plan until you retry or cancel the rest.
  • Every part pays the bridge fee, so splitting costs a little more than one withdrawal.

Stealth deposits

Wallet → Stealth mode → New stealth deposit sends a bridge deposit through a new sub-wallet with its own deposit account and XMR address — so the bridge never sees two deposits from the same Solana address, and nothing on Solana points to your main wallet.

  1. 1
    Setup payment
    A small XMR payment to an exchange, which sends SOL straight to the new sub-wallet. Your main wallet never transfers anything to it.
  2. 2
    Its own deposit address
    The sub-wallet creates its bridge deposit account and pays the rent itself; you get a fresh XMR address.
  3. 3
    Send XMR
    From any Monero wallet, any amount from the bridge minimum.
  4. 4
    Into your private balance
    The sub-wallet claims its wXMR and moves it into your private balance. Your main wallet only ever sees the private balance.
Steps run while the terminal is open and unlocked (your keys stay in the browser). The setup payment costs the exchange's minimum and its fee; what isn't used for fees stays in the sub-wallet as SOL.

Split buys

With stealth mode on and Private balance funding, the trade panel offers Split into 2–5 parts. Each part opens from its own fresh sub-wallet with a random amount (rounded to 0.001 XMR, at least 0.005 XMR) and a random start delay, so a larger buy doesn't read as one trade. Portfolio shows every part with its progress; the holdings add up in your totals.

Network privacy and no logs

  • Your browser talks only to this site: Solana RPC (/api/rpc), Jupiter, exchanges, market data and token images all go through the server. RPC providers and APIs see the server, not your IP. The page's Content-Security-Policy enforces it.
  • No logs: the server keeps no request logs with IPs, user-agents or wallet addresses. Rate limiting uses salted hashes held in memory for a minute; error counters have no user data.
  • What the server does handle — addresses and amounts for quotes, swaps and status checks — is passed through and not stored. Opt-in features that need storage (referrals, the leaderboard, votes) keep a keyed hash of the wallet, never an IP.
  • The optional direct RPC WebSocket (off unless the operator enables it) would connect your browser to the RPC provider; the privacy score shows it.

Using Piconero over Tor

Piconero works in Tor Browser at the “Standard” and “Safer” levels: no third-party requests, no WebGL, self-hosted fonts. “Safest” turns off JavaScript, which the wallet needs. WebAssembly is only used by the private balance — if it is blocked, that one feature is unavailable and everything else works. An onion address is coming; operators can run one with the guide in docs/TOR.md.

Passkeys and wallet storage are tied to the site address: on a .onion address, restore your wallet with its recovery phrase or a password. Tor hides your network address — not what happens on Solana.

Who sees what

PartySees
Monero networkNothing linkable — Monero transactions are private by design.
Solana (public)Everything your Solana address does: swaps, balances, transfers to exchanges and bridge withdrawal requests — including the XMR address you withdraw to.
wxmr.io bridgeYour deposit account, deposit amounts and withdrawal requests (amount + XMR address).
ExchangesTheir side of the swap: amounts, addresses, your IP (SideShift requires it).
Our serverPublic data needed for quotes and status (addresses, amounts) — passed through, not logged. Never your key, never your IP in logs.

Recommendations

  • Use a fresh subaddress for every withdrawal.
  • Don't reuse the terminal's Solana address for unrelated activity; create a new wallet if you want a clean slate.
  • Keep the private balance on so idle funds aren't sitting in public view.
  • Remember that timing and amounts can still be correlated — Solana is a public ledger.