Private Channels has not been security audited and is not recommended for production use with real funds without a thorough security review.
Private Channels is an enterprise layer for internet capital markets on Solana. It provides a configurable app-layer for private, instant, zero-fee transfers inside payment channels: users deposit SPL tokens into an on-chain escrow program, transact off-chain through a gateway, and settle back to Mainnet via a Sparse Merkle Tree proof, giving app developers instant, zero-fee, private transfers without leaving the Solana ecosystem.
Resources
Why Private Channels?
- Instant transfers: off-chain throughput beyond Solana's native TPS; transfers confirm when the sequencer processes them, not when a block confirms
- Zero per-transfer fees: no gas cost on individual channel transfers; users pay only for on-chain deposits and withdrawals
- Privacy: transfers between channel participants are not recorded on Solana Mainnet
- Permissioned access: RBAC with JWT authentication lets you control who can send and receive
- Mainnet settlement: funds are always redeemable to Solana via a Sparse Merkle Tree exclusion proof, which the escrow program enforces on-chain
See the Overview for the full architecture, data flow diagram, and security model.
Quick Start
import { getDepositInstructionAsync } from "../private-channel-escrow-program/clients/typescript/src/generated";const depositIx = await getDepositInstructionAsync({payer: payerSigner,user: userSigner,instance: instancePda,mint: mintAddress,userAta: userAtaAddress,amount: 1_000_000n, // 1 USDCrecipient: null});// send via your preferred Solana client
TypeScript clients are generated from the IDL; see Installation. For Token-2022
mints, pass tokenProgram: TOKEN_2022_PROGRAM_ADDRESS explicitly, since it
defaults to the standard SPL Token Program.
Full Quickstart - environment setup and client generation
Overview - architecture and data flow
Use Cases
- Institutional bilateral payments - banks and institutions that need high-volume, private USDC flows without every transfer appearing on-chain
- High-frequency app-layer transfers - gaming, loyalty, and consumer apps that need sub-second, zero-fee transfers at scale beyond native Solana TPS
- Privacy-preserving token flows - any use case where counterparty and amount privacy is a product requirement
When to use native SPL transfers instead
Next Steps
Installation
Set up your environment and generate TypeScript clients.
Deposit
Make your first deposit into the escrow.
Overview
Understand the architecture and data flow.
Instructions
Full instruction reference for all programs.
Community & Support
- Questions? Ask on Solana Stack Exchange
(use the
solanatag) - Issues? Report on GitHub Issues
Built and maintained by the Solana Foundation. Licensed under the MIT License.
Is this page helpful?