Skip to main content

Privacy Boost SDK

Privacy Boost is a privacy-preserving transaction SDK that enables confidential token transfers on EVM-compatible blockchains. Build private payment flows across web, mobile, and CLI with a unified API.

How It Works

Privacy Boost uses a shielded pool — a smart contract that holds deposited tokens using encrypted commitments — combined with zero-knowledge proofs to enable private transactions in three steps:
  1. Deposit — Move tokens from your wallet into the shielded pool
  2. Send — Transfer tokens privately to any privacy address (fully hidden from observers)
  3. Withdraw — Move tokens back to any public address
Once tokens are in the shielded pool, transfers are completely private: no one can see the sender, recipient, or amount. Learn more about the privacy model.

Core Concepts

Before diving in, here are the key terms you’ll encounter throughout the SDK:
ConceptWhat it means
Shielded poolThe on-chain smart contract that holds deposited tokens. Once tokens are in the pool, all transfers are private.
Shielded balanceYour private token balance inside the shielded pool — only visible to you.
Privacy addressA public address others use to send you private transfers. Derived from your wallet, similar to sharing a bank account number. Not the same as your Ethereum address.
VaultThe SDK module (sdk.vault) for all shielded pool operations — deposit, send, unshield, and balance queries.
Wallet adapterA platform-specific object that bridges the SDK and your wallet. It provides signing functions (signMessage, signTypedData, sendTransaction). Each platform implements this interface differently.
Chain clientA chain-scoped client created via sdk.chain() for multi-chain operations. Each chain client has its own auth state and balances but shares identity keys with the parent SDK.
For protocol-level details (UTXO model, notes, nullifiers, Merkle trees), see the Protocol Deep Dive. For key hierarchy and encryption, see Keys & Encryption. For a full glossary, see Glossary.

Quick Example

import { PrivacyBoost } from '@testinprod-io/privacy-boost';
import { createWalletAdapter } from '@testinprod-io/privacy-boost-react';

// Initialize
const sdk = await PrivacyBoost.create({
  indexerUrl: 'https://test-api.privacy-boost.sunnyside.io/indexer',
  wethContract: '0x4200000000000000000000000000000000000006',
  appId: 'app_abc123xyz',
});

// Authenticate with browser wallet (MetaMask, etc.)
const adapter = createWalletAdapter();
await sdk.auth.authenticate(adapter);

// Deposit 1 token into the shielded pool
await sdk.vault.shield({
  tokenAddress: '0x...token-address',
  amount: 1000000000000000000n, // 1 token (18 decimals)
});

// Send 0.5 tokens privately
await sdk.vault.send({
  to: '0x04...recipient-privacy-address',
  tokenAddress: '0x...token-address',
  amount: 500000000000000000n, // 0.5 tokens
});

Getting Started Path

1

Try a Quickstart

Pick your platform below and follow the 5-minute quickstart to get a working integration.
2

Set up your app

Read App Setup to get an App ID, then Configuration and Authentication to understand the setup options.
3

Go deeper with your platform SDK

Each platform has a full Getting Started guide and topic-specific guides (vault operations, session management, error handling).
4

Prepare for production

Choose an auth integration for your backend, configure key persistence, and add error handling.

Choose Your Platform

TypeScript

Full-featured SDK for web applications. Works in browser and Node.js.

React

React hooks and components for seamless integration with your React app.

iOS — Coming Soon

Native Swift SDK with async/await support for iOS applications.

Android — Coming Soon

Native Kotlin SDK with coroutines for Android applications.

React Native — Coming Soon

React Native SDK with native wallet integration.

CLI

Command-line tool for scripting, automation, and testing.

Multi-Chain Support

Privacy Boost supports operating across multiple EVM-compatible blockchains from a single SDK instance. Create chain-scoped clients to deposit, transfer, and withdraw on any supported chain while sharing your cryptographic identity.
const arbitrum = sdk.chain({ indexerUrl: 'https://arb.example.com' });
await arbitrum.authenticate(walletAdapter);
await arbitrum.vault.shield({ tokenAddress: '0x...', amount: 1000n });
See the Multi-Chain guide for details.

Learn More

Multi-Chain

Operate across multiple blockchains with a single SDK instance

Protocol Deep Dive

UTXO model, notes, nullifiers, Merkle trees, and full transaction lifecycle

Keys & Encryption

Key hierarchy, privacy addresses, and 3-way ECDH encryption

Trust & Security

TEE guarantees, self-custody, forced withdrawal, and threat model

Glossary

Technical terminology and definitions