Docs
How Torpad works, what the server sees, what it never sees, and what each Tor Browser level can do.
- 01Generate a burnerClick the wallet badge. A fresh ed25519 keypair (SLIP-0010, Phantom-compatible phrase) is generated in your tab. It never leaves the browser; write the phrase down if you want to reuse it elsewhere.
- 02Fund with MoneroOn fund, pick a KYC-free exchange, send XMR (or ZEC, BTC, LTC) to the deposit address; SOL arrives on the burner. Or send SOL directly.
- 03Launch or tradeThe server builds the transaction, the inspector decodes it, you sign it locally and the relay submits it (Jito bundle by default). Every launch is born with the 60/30/10 split locked.
- 04Nuke the identityWithdraw what is left and press nuke: key, token and state are wiped from memory. Closing the tab does the same. Nothing remains on your machine or on the server beyond the public chain.
What the server sees
- your burner's public key and the transactions you signed (both public on-chain anyway);
- the posts you write and the proof-of-work tokens you spend;
- an open funding order (deposit address ↔ burner) for at most 7 days after it ends.
What it never sees
- private keys or recovery phrases: generated and used in your tab only;
- IP addresses on the onion: Tor ends at the service; no access logs are written on either host;
- third-party anything: no CDN, fonts, analytics or external images; the CSP is
default-src 'self'; - nothing persisted in your browser: no cookies, no storage, no service worker (checked in CI).
The inspector
Every transaction is decoded in the browser before signing: each instruction's program, a human label, the SOL and token deltas from simulation, the platform fee and the Jito tip as separate lines. The wallet refuses to sign any transaction that touches a program outside this allowlist:
- System
11111111… - Compute Budget
ComputeB… - Token
Tokenkeg… - Token-2022
TokenzQd… - Associated Token
ATokenGP… - Pump
6EF8rrec… - PumpSwap AMM
pAMMBay6… - Pump Fees
pfeeUxB6… - Pump Mayhem
MAyhSmzX… - Jupiter v6
JUP6LkbZ…
The fee and tip are plain System transfers to known addresses, so a wrong destination is visible, not hidden in a custom program.
Platform fee
1 % of every trade, 0 % when the burner holds at least 1,000,000 $TORPAD (Tier 1). pump.fun's own fees apply on top at every tier. The fee is a System transfer in the same transaction as the trade, visible in the inspector and in the ledger.
Creator fee split, locked at birth
Every coin launched here splits its pump.fun creator fees 60 % creator / 30 % holders / 10 % Torpad, set in the launch transaction and immediately locked (see why). The holder share is distributed daily to every wallet holding at least 0.01 % of supply, pro-rata, as SOL.
Weekly epochs: 50 / 30 / 20
Torpad's revenue (platform fees, its 10 % share, rewards from coins it created) is split every Sunday 00:00 UTC: 50 % pushed in SOL to $TORPAD holders (no claim), 30 % to the reserves, 20 % to Tor relays and hosting. Payouts under 0.0005 SOL carry over. Details and live counters on the $TORPAD page.
Torpad never custodies funds. The fund page asks the Trocador aggregator for quotes from exchanges rated KYC A (no identity check), you choose one, and the exchange pays SOL directly to your burner. Zcash, Bitcoin and Litecoin are offered too; Monero is the one that hides the sending side. You can also send SOL from any wallet to the burner address shown as a QR.
Retention
An order row links a deposit address to a burner pubkey with amounts and timestamps. It exists so the worker can watch the order and so you can come back for a refund. It is deleted 7 days after the order ends; there is no lookup by pubkey, only by the random order id, and nothing is logged. Trocador keeps its own record for 14 days and sees the Torpad server's address, not yours.
What remains: timing correlation
An observer who can see the exchange's side and the public SOL leg can match an XMR deposit of X at time T with ≈ X × rate landing on a fresh pubkey shortly after. Torpad cannot remove this; it only refuses to keep a queryable record of it.
Torpad offers a single launch mode: 60 / 30 / 10, locked in the launch transaction. There is no "open split, lock later" option, and that is not a UI shortcut but a property of pump.fun's fee-sharing program. The first decision recorded in docs/DECISIONS.md explains it: pump.fun's update_fee_shares_v2 can be called exactly once per sharing config, after which the admin is revoked. Setting the shares is the lock. A split that stays editable therefore cannot also be 60/30/10 at birth, and a creator who could change it later could route the holder share to themselves.
So every Torpad coin is born locked, and a coin launched elsewhere shows its real state:
- none no sharing config
- open config exists, admin not revoked, the creator can still change it
- locked shares set once, admin revoked
- generate a burner
- fund, launch, trade
- post on the board
- live feed and charts
- everything above
- the onion is first-party
- scripts are same-origin with a nonce CSP
some fonts and media are blocked by Tor Browser; Torpad uses none
- catalog and coin pages
- board, ledger, reserves, relays
- docs and the onion address
signing needs a script to run in your tab: forms render but do not submit
Every page is rendered on the server first, so nothing on Torpad is blank without scripts; forms simply do not submit.
The pool is what makes Torpad a zk pad. You deposit SOL from the burner you funded into an audited zero-knowledge pool (Privacy Cash, program 9fhQ…QyQD, about 850,000 notes). Later you withdraw into a brand-new burner: the withdrawal is a groth16 proof that a note in the pool is being spent, computed in your browser, submitted by a relayer that pays the transaction fee. Nothing on-chain links the two burners, and Torpad never sees your notes, your spending key or the proof inputs.
- Your browser only talks to this site: relayer calls and RPC reads are proxied by Torpad; the 20 MB of circuit files come from this origin.
- Proving needs WebAssembly, so the shield page works on Tor Browser “Standard”; “Safer” disables WebAssembly.
- A burner generated in this tab only scans notes newer than itself (fast). An imported burner scans the whole pool once (slow over Tor).
- The pool program is upgradeable behind a Squads multisig and the relayer is a third party; read
docs/ZK_RESEARCH.mdin the repository for the audits, the licenses and the legal landscape.
- 01I reloaded the page and my burner is gone. Can I recover it?
- Only if you wrote down the recovery phrase shown when the burner was generated. The key exists in your browser tab's memory and nowhere else; Torpad never sees it and cannot restore it. Treat a burner as a session: fund it with what you intend to use, trade, and withdraw or nuke when done.
- 02Why is there no browser extension or wallet connect?
- Extensions are fingerprintable, talk to their own servers, and are not available in Tor Browser. A key generated in the page, held in memory and used to sign transactions the server builds is the smallest possible surface. Nothing persistent means nothing to leak when the tab closes.
- 03Why Monero for funding?
- SOL you buy on an exchange is tied to your identity; sending it to a burner links the burner to you on a public chain. Monero hides sender, receiver and amount on its own chain, so an XMR → SOL swap through a KYC-free exchange breaks the public link. See funding for what remains.
- 04What happens on reload?
- Everything in memory is dropped: burner key, auth token, open funding order, draft posts. The server keeps only what it needs to serve the next request (coins, threads, open funding rows). This is deliberate: no cookies, no local storage, no service worker, so there is nothing to forensically recover from your browser.
- 05How does slippage work?
- The quote shows the expected output and a minimum you set in bps (default 5 %). The transaction carries that minimum: if the price moves past it between quote and landing, the program rejects the trade and you pay only the network fee. Tighter slippage means more failures on fast coins.
- 06What is MEV protect?
- Trades are sent as Jito bundles with a tip instead of through the public mempool, so they are not visible to sandwich bots before they land. The tip (default 0.0010 SOL) is a plain transfer in the same transaction and the inspector labels it. You can turn it off and go through the RPC directly.
- 07What happens to graduated coins?
- When a bonding curve completes, pump.fun migrates the liquidity to PumpSwap. Torpad follows: the coin page switches venue, trades go through PumpSwap, and the creator fee split keeps working because the fee-sharing config belongs to the mint, not the curve.
- 08What is the Jupiter fallback?
- For coins that live neither on a pump curve nor on PumpSwap (or when a better route exists), the quote comes from Jupiter and the transaction is still built and submitted by the Torpad relay, so the browser never talks to a third party. Jupiter is on the program allowlist; the inspector shows it as such.
- 09Are holder rewards custodial?
- In v1, yes, partly: creator fees accrue on-chain to a vault, and the holder share is swept by Torpad's crank and pushed daily to holders as SOL. The 60/30/10 split itself is locked on-chain; what Torpad holds between sweep and push is visible in the ledger. A non-custodial distribution program is a v2 item.
- 10Can I trade coins that were not launched here?
- Yes. Paste the mint address in the search bar at the top. Any pump.fun curve or PumpSwap pool works; the page shows the coin's real on-chain split state (none / open / locked) instead of Torpad's.