UPP — Universal Private PoolSDK Reference

SDK Overview

UPP SDK module structure, subpath exports, and installation.

UPP SDK

@permissionless-technologies/upp-sdk is a TypeScript SDK for integrating UPP privacy into any application. It uses viem for Ethereum interaction and supports optional wagmi/React integration.

Installation

npm install @permissionless-technologies/upp-sdk

Subpath Exports

The SDK uses subpath exports for tree-shaking:

Import pathContents
@permissionless-technologies/upp-sdkMain entry — re-exports createUPPClient and core types
@permissionless-technologies/upp-sdk/coreUPPClient class, note management, proof generation, ProofWorkerManager, CircuitArtifactCache
@permissionless-technologies/upp-sdk/keysMaster key derivation, SNARK/STARK dual-system support
@permissionless-technologies/upp-sdk/utilsPoseidon (BLS12-381), Merkle tree utilities
@permissionless-technologies/upp-sdk/reactUPPAccountProvider, useUPPAccount, usePrivateBalance, useProofWorker, useCircuitCache hooks
@permissionless-technologies/upp-sdk/indexermakeRpcIndexer for note scanning
@permissionless-technologies/upp-sdk/workerWeb Worker entry for off-main-thread proof generation
@permissionless-technologies/upp-sdk/stwo-proverCircle STARK prover (WebAssembly)

Quick Example

import { createUPPClient } from '@permissionless-technologies/upp-sdk'
import { createPublicClient, createWalletClient, http } from 'viem'
import { sepolia } from 'viem/chains'

const publicClient = createPublicClient({ chain: sepolia, transport: http() })
const walletClient = createWalletClient({ chain: sepolia, transport: http() })

const upp = await createUPPClient({ publicClient, walletClient })

// Shield 100 UPD
const { commitment } = await upp.shield({
  token: '0xUPDTokenAddress',
  amount: 100n * 10n ** 18n,
})

Module Pages

On this page