Helius Privacy: Solana Rings logoHelius Privacy: Solana Rings
No sequencer. One Solana transaction. Programs under audit. Mainnet has not launched. Older Helius pieces stay.
devrels.xyz/a/308Helius Privacy is Solana Rings. Programmable privacy for transfers and swaps. Zero-knowledge proofs. Execution stays on Solana. A confidential transfer hides the asset and the amount. Sender and recipient stay public. Self-custodial: the owner signs. The llms index says anonymous Custom Rings can hide all four fields. Beta. Names, endpoints, and behavior may change. Live on devnet only. Mainnet has not launched. Three independent audits plus formal verification of the privacy program are in progress.
Protocol source: helius-labs/zolana. Demo: helius-privacy-demo.fly.dev. Older Helius pieces stay, including Parsed Events.
SDKs
TypeScript @heliuslabs/zolana plus @solana/kit. Rust crates from git tag v0.1.0-alpha: zolana-client, zolana-interface, zolana-keypair, zolana-transaction. Local stack: zolana dev start after cargo install --git https://github.com/helius-labs/zolana --tag v0.1.0-alpha zolana-cli. Examples: typescript-client, rust-client, escrow-program, swap-program under helius-labs/zolana-examples.
import { createZolanaClient } from "@heliuslabs/zolana"
const client = await createZolanaClient({
solanaRpcUrl: "https://devnet.helius-rpc.com/?api-key=YOUR_API_KEY",
indexerUrl: "http://zolnet-devnet-1779374825.eu-north-1.elb.amazonaws.com",
proverUrl: "http://zolnet-devnet-1779374825.eu-north-1.elb.amazonaws.com:3001",
allowInsecureHttp: true,
})Devnet hosts and IDs
Solana RPC is https://devnet.helius-rpc.com/?api-key=. Indexer and prover share the AWS ELB host in eu-north-1. Prover is port 3001. Those URLs are HTTP. Localnet: RPC 8899, indexer 8784, prover 3001. Do not invent a mainnet privacy RPC. The endpoints page titles mainnet but only lists beta devnet and localnet.
| Role | Address |
|---|---|
| Solana Privacy Program | sppXZU59VoYodv9Accs4hHNTjYiuYmDFyFVjUjPxFsG |
| User Registry Program | regyS5rkAcw2YzDJCmTwCTHs2s246FXxbmuRZ42u2PD |
| State Merkle tree | trEEbaNobcTESNmtsPBj3FX27q5sDCQePV2kb12FYho |
| Native SOL interface PDA | GGk4JbLExpASWVCAtAVdxZ65BCQsj8WN5TsL6v8Dd1c8 |
SPL interfaces are per-mint. Guides: deposit, transfer, withdraw, read balance, read history. Integration paths: embedded private wallet, existing wallet, on-off ramp, custom enterprise Ring.
Keep reading
'Private' is doing a lot of work in Solana marketing right now. Confidential Transfers hide amounts but not who's transacting. Shielded pools hide both but can't compute. Arcium and MagicBlock compute on hidden data — one trusts math, the other trusts a chip. The right question isn't 'which is most private?' — it's 'what exactly do I need hidden, and whom am I willing to trust?' Here's the matrix.
Zero-knowledge on Solana is two parallel stacks that share almost nothing: a curve25519 sigma-protocol stack purpose-built for confidential transfers, and a BN254 SNARK stack (alt_bn128 syscalls + Groth16) that powers ZK compression and general-purpose verifiers. Here's the full map — syscalls, programs, provers, costs, and the mid-2025 soundness bug that reshaped the roadmap.
Solana is the most transparent it's ever been — and privacy tooling is finally catching up. Four distinct approaches now ship: Token-2022 encrypted balances, Arcium's MPC, shielded ZK pools like Privacy Cash, and TEEs inside Jito BAM and MagicBlock. A map of the landscape.
Get new articles in your inbox
Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.
