Token Creation & Minting
Confidential Transfers on Solana: How They Actually Work
Token-2022 confidential transfers hide amounts with zero-knowledge proofs while sender and receiver stay public. How it works and where it falls short.
Solana is a public ledger. Anyone can see every balance, every transfer amount and every account. Token-2022's confidential transfer extension is the one built-in way to hide part of that. It hides amounts and leaves everything else public. It's also one of the most complex extensions in Token-2022, and one of the least understood.
What stays private and what doesn't
A confidential transfer hides the amount that moves. It does not hide:
- who sent it and who received it, since both addresses are public like any other Solana transaction
- the fact that a transfer happened, since the transaction is on-chain with a timestamp and both accounts attached
- the token account itself or who owns it, since only the balance and amounts inside it are encrypted
That is a much smaller guarantee than a fully shielded pool gives. You get private amounts on a ledger that is otherwise public, and you don't get anonymity.
How it works: encrypted balances and zero-knowledge proofs
Balances and transfer amounts are stored with ElGamal encryption. This scheme is additively homomorphic, which means you can add and subtract encrypted amounts without decrypting them. A transfer needs exactly that: subtract from the sender, add to the receiver, and never show either number to the validators processing it.
The transfer still has to be proven valid. The sender can't spend more than the encrypted balance holds, and the amounts have to add up. For that the extension uses zero-knowledge range proofs, which prove that a hidden number has certain properties (for example, that it decrypts to a non-negative value within a valid range) without revealing the number. Creating and checking these proofs takes far more work than a normal transfer. That cost is one reason confidential transfers aren't the default.
Why you rarely see it used
Compared with the other Token-2022 extensions, confidential transfers are uncommon for a few reasons.
Wallet support. A wallet has to manage encryption keys separately from the account's signing key, and it has to generate and verify the proofs. Most wallets don't do this yet.
Cost. The proofs make the transaction bigger and use much more of the compute budget than a plain transfer.
Compliance. Exchanges, custodians and other regulated businesses usually need to see transaction amounts. The institutions most interested in token infrastructure are often the ones who can't use hidden amounts.
Where it fits
Payroll and business-to-business payments are the clearest uses. The parties don't want competitors and strangers seeing what was paid, and they don't need to hide who paid whom. It's a narrow tool, much narrower than the "privacy coin" label people sometimes give it.
Tool support today
Few consumer token creators offer this extension, and Solstack doesn't either. A confidential-transfer mint needs wallet-side support for the encryption and proof steps, and the major Solana wallets don't implement that end to end yet. If you're considering it for a real project, expect to need custom tooling and a specific wallet setup. It isn't a checkbox in a token creator yet.
Solstack's creator does build two Token-2022 extensions today, transfer fee and interest-bearing. See the Token-2022 concepts doc or open the Token-2022 Creator.