Preview. Private transactions rely on
@avnu/avnu-sdk >= 4.2.0 (privacy service) and a proving backend — a STRK20-capable wallet or the Starknet privacy SDK. The API surface may still change. Questions? Reach out on Telegram.How it works
A private transaction never moves tokens from a public account. Instead, it goes through three steps:- Private balance. Tokens you deposit into the privacy pool are held as shielded notes, so balances and amounts stay off the public ledger.
- Proof. Each action (withdraw, transfer, swap) becomes a proof built client-side — by the privacy SDK or by a STRK20-capable wallet — against a recent
provingBlockId. - Execution. The paymaster bundles the proof into a single on-chain transaction through its forwarder contract, and can pay the gas on your behalf.
Fees
Every private transaction carries two costs: the gas fee that goes to the network, and the pool fee that goes to the privacy pool. Private transactions run in thesponsored_private fee mode: the relayer pays the gas, and the user pays only the pool fee — from their private balance, in the token of their choice (poolFeeToken), converted from the base STRK amount by the paymaster’s price oracle.
Sponsoring requires a paymaster API key from the Portal, the same setup as gasfree.
Transaction types
Prerequisites
Before you start, make sure you have:@avnu/avnu-sdk >= 4.2.0, which ships the privacy service:executePrivateSwap,createStrk20WalletProver,buildPrivateSwapFee,submitPrivateSwap(the paymaster client is built in, targetingstarknet.paymaster.avnu.fiby default — override withAvnuOptions.paymasterBaseUrl, e.g.sepolia.paymaster.avnu.fifor testing)- a proving backend: a STRK20-capable wallet (starknet.js >= 10.4,
WalletAccountV6— Ready and Xverse today), or the Starknet privacy SDK - a funded private balance for the token you want to sell, so deposit into the pool first
Next steps
Private Swap via avnu
Execute a sponsored, gasless private swap step by step