How it works
Sanctum separates who decides a trade from who makes it. You decide. Shared wallets make it. A private ledger keeps track of what is yours.
A trade, start to finish
- 1Open an account
Your browser makes a key. That key is the account: it signs every request, and it never leaves your device. No email, no password, no wallet needed. You can also make the key from one wallet signature, so the same account opens on any device.
- 2Deposit SOL
Send SOL to your own deposit address from any wallet or exchange, or deposit through Privacy Rings so the amount is encrypted. Either way the ledger credits your balance and the SOL ends up in the main wallet.
- 3Place an order
A buy, a sell, or a rule such as a stop loss. Your browser signs the order and sends it to the engine. No transaction is broadcast and no wallet pops up.
- 4A trading wallet makes the trade
The engine checks the coin is safe, picks the trading wallet, builds a swap through Jupiter, simulates it to confirm it can only move what the order allows, and sends it. The ledger moves the coins to your account.
- 5Withdraw or pay
Ask for a payout to any address, an encrypted payout to your private wallet, or a private payment to someone else. The main wallet sends it; nothing on chain says which account asked.
Why it is private
A normal trade is signed by your wallet, so your address is on it forever. Here the only addresses on a trade are Sanctum's, and they are on everyone's trades. An observer sees swaps from shared wallets and cannot tell which account asked for which, how much any one account holds, or what orders are waiting.
Orders that have not filled exist only in the ledger. Payments between @names are two ledger entries and never become a transaction. See what the chain sees at each step.
Trading wallets
If every account's coins sat in one address, that address would show up in a coin's holder list as a single large holder: it looks like a whale, and it tells everyone how much Sanctum's users hold in total. So trades go out from several trading wallets, each holding only a small share of any one coin.
What this does and doesn't hide. It changes how holdings look in a holder list. It does not make the wallets secret: they are funded from the main wallet and listed on the Reserves page, so that the reserves can be checked. One order is never split across wallets, so a single large buy of a very small coin can still put one wallet above 1.5%.
Privacy Rings
Helius Privacy Rings is a shielded pool on Solana: balances and transfers inside it have their amounts encrypted. Sanctum uses it for money moving in and out, where an ordinary transfer would show exactly how much you deposited or took out.
Every account has a Privacy Rings wallet made from the same key, so there is nothing extra to back up. It lives in your browser, signs its own transfers, and reads its balance from the chain each time it opens.
On the public ring a private transfer hides the amount and the asset. The two addresses involved are still visible. Private payouts can also be sent in batches, several in one transfer, so that one cannot be matched to a deposit by its timing.
What keeps the funds safe
Sanctum holds funds while you trade, the way an exchange does. That is the cost of privacy here, so the design assumes you should not have to take it on trust.
Every change is appended to a journal on disk before it takes effect, and each line extends a hash chain. The balances are whatever replaying that journal gives.
A swap built by a third party is inspected instruction by instruction and simulated against every token account the trading wallet has. If it would spend more than the order, or touch other holdings, it is refused.
Coins with a freeze authority, a transfer tax or other extensions that let a creator take tokens back are not traded at all.
Each signed request carries a timestamp, is accepted once, and expires after two minutes.
Proof of reserves
Anyone can count what the wallets hold, because they are public. The harder question is whether the ledger owes more than that. The proof answers it without publishing anyone's balance.
Fees
Up to 2 SOL per trade, withdrawal or private payment. The exact limits are in the Docs.