import PrivacyBoost
let config = PrivacyBoostConfig(
serverUrl: "https://optimism.sepolia.privacyboost.io",
chainId: nil, // discovered from server
shieldContractAddress: nil, // discovered from server
wethContractAddress: "0x4200000000000000000000000000000000000006",
teePublicKey: nil,
appId: "app_abc123xyz",
persistenceStorage: nil,
persistenceUnlock: nil
)
let sdk = try PrivacyBoost(config: config)
// Authenticate with a WalletDelegate you implement
let result = try await sdk.authenticate(
wallet: myWalletDelegate,
keySource: .walletDerived,
tokenProvider: nil
)
switch result {
case .authenticated(let login):
print("Privacy address:", login.privacyAddress)
case .credentialRequired(let challenge):
// Prompt user for PIN/biometric, then call sdk.submitCredential(...)
break
case .mnemonicGenerated(let mnemonic):
// First-time user — display mnemonic, then call sdk.proceedAfterMnemonic(...)
break
case .recoveryRequired:
// Vault is in a recovery state — see Authentication concepts
break
}
// Shield 1 ETH-equivalent of WETH
let amount = try sdk.parseAmount("1.0", decimals: 18)
let shielded = try await sdk.shield(
tokenAddress: "0x4200000000000000000000000000000000000006",
amount: amount
)
print("Shield tx:", shielded.txHash)