Your tokenized stock positions
are public. All of them.

Confide lets you hold them on Solana without publishing what you hold — and still prove what you must, to whom you choose, when you choose. The chain readings on this page are live, made in your browser. The mint list and the proof transactions are files served with the page; everything they are used to ask is asked of mainnet and devnet now.
GitHub · Apache-2.0 · nothing here needs a wallet or an API key
Walkthrough: the same position seen four ways - the market sees nothing, a lender sees only that it covers the loan, the auditor and the holder see the number. Click to play.
Walkthrough — click the frame, or watch on YouTube (youtu.be/KQsRwP8HTs0). Every terminal pane in it is the stdout of a command run moments before the recording; two of them reach mainnet and devnet.

The privacy is already shipped. Nobody can use it.

All 1,869 tokenized stocks on Solana run on Token-2022 with confidential transfers switched on. Every one of them leaves the auditor key empty — because the only key on offer reads everyone's everything, forever, and no setting of that is correct for a regulated issuer.
Read from mainnet, just now, by your browser. NVDAx and TSLAx are Backed's; NVDA.US and AAPL.US are Backpack Securities'. Two issuers, arriving independently at the same empty slot — that is the finding, and all 1,869 mints check the same way (scripts/slot-scan.sh).

Meanwhile, anyone can read anyone.

Wallets that touched NVDAx in the last few transactions, and what they held when it settled. These are the balances the transaction itself published, not a lookup of what they hold now — which is the point: the number was public the moment it landed.
Try any address — yours, or one you know. The page reads its recent transactions.
Paste an address above.

The same position, under Confide.

A live account on devnet. The chain shows nothing. The position is there. Its mint gates new accounts exactly as NVDAx does — autoApproveNewAccounts: false — so the issuer had to sign before this account could hold anything. On a real mint that signature is a conversation, not a transaction, which is the one thing here that cannot be done without them.

A lender can check your collateral without seeing it.

A lender needs one bit: does the collateral cover the loan? Two proofs answer it over the account's own on-chain ciphertext — equality binds a commitment we can open to the account, then the range proof runs on the surplus. Press the button and Solana's ZK program will check them, right now, from your browser. And a lender can now take it. The three proofs a seizure needs are built while the borrower cooperates, parked on chain under an authority they cannot close, and fired later by a program that owns the escrow — no key reconstructed, no committee asked, the amount never revealed. It runs on devnet: the loan account still reads seized.
The proofs were generated by scripts/prove-collateral.sh over the account above; the verification you just triggered is live.

Last quarter's number cannot be tidied.

An LP is owed a position report every quarter. Today that number is written afterwards, and nothing binds it to what was actually held on the reporting date. Confide seals the position that day — over the account's own ciphertext above — and anchors a 32-byte commitment on chain. Forty-five days later a committee opens it. The holder is not one of them, and a figure restated in the meantime does not open the commitment.
reading devnet…
Written by scripts/anchor-receipt.sh, opened by scripts/committee.sh — five separate processes, and the holder's exited in September. Nothing about the position is on chain: a hash and two dates.