Swaps

Hush swaps are powered by Jupiter aggregator. Swaps take longer than typical DEX trades because they involve privacy pool withdrawals and ZK proof generation. The process runs in the background — keep your browser open until it completes. Track progress in your transaction history.

Hush swap interface

Swap Types

Shielded SOL → SPL Token

When swapping from your shielded balance, Hush withdraws SOL from the privacy pool to your oldest private shard wallet, which then executes the swap. If that shard already has SOL, Hush uses it first to minimize the withdrawal amount.

Minimum: 0.0075 SOL (covers withdrawal fees: 0.006 SOL + 0.35%). The shard wallet pays all swap transaction fees directly from the withdrawn amount.

Public SPL → Any Token

Tokens in public shards are consolidated to a randomly selected shard (from your oldest 3) before swapping. Your public fee wallet pays all transaction fees. If the fee wallet needs funding, it's automatically topped up from your shielded balance (incurs 0.006 SOL + 0.35% withdrawal fee).

Private SPL → Any Token

Private token swaps use your oldest private shard. The shard pays its own fees — if it has less than 0.01 SOL, Hush automatically funds it from your shielded balance (minimum 0.0065 SOL withdrawal).

Any Token → SPL Token

Output tokens stay in the shard wallet that executed the swap. For public swaps, they remain in your public shard. For private swaps, they stay in your private shard.

Any Token → SOL

When swapping to SOL, the output is automatically shielded to your privacy pool. Hush reserves 0.003 SOL from the output for shielding transaction fees and ZK proof generation (10-30 seconds). Minimum output after reserve: 0.015 SOL.

Fees

  • Swap transaction fee: ~0.0001 SOL (includes priority fees)
  • Consolidation fees: ~0.00001 SOL per source shard when tokens are spread across multiple shards
  • Token account creation (ATA): ~0.002 SOL if the swap wallet doesn't have a token account for the output mint
  • Privacy pool withdrawal: 0.006 SOL + 0.35% (only when fee wallet or shard needs funding)
  • Shielding reserve: 0.003 SOL deducted from output (swaps to SOL only)

Edge Cases

  • Same token: Cannot swap a token for itself.
  • One flow at a time: You cannot start a new swap while another flow (send, swap, or consolidation) is active.
  • Insufficient shielded balance: If you lack shielded SOL for fees or withdrawals, the swap fails with an error showing how much more to deposit.
  • Quote refresh: Quotes auto-refresh every second with 0.5% default slippage.

Failure & Recovery

Swaps can fail at various stages. Hush automatically retries recoverable errors (up to 20 attempts). Gas/SOL errors require manual intervention — you'll need to ensure sufficient shielded balance before retrying.

Shielded SOL swaps: If a retry is needed, Hush checks if your private shard already has SOL from a previous withdrawal attempt and uses it instead of withdrawing again.

Track status in transaction history:

  • Preparing Fees — Checking/funding fee wallet
  • Initializing — Validating quote and fees
  • Consolidating — Moving tokens to swap wallet (or withdrawing shielded SOL)
  • Swapping — Executing Jupiter swap
  • Shielding — ZK proof generation (SOL output only)
  • Complete — Swap finished successfully
  • Failed — Error occurred (can retry)