用途:为在 Solana 上构建隐私支付功能提供 Umbra SDK 的快速参考,涉及 @umbra-privacy/sdk 与 @umbra-privacy/web-zk-prover。Umbra 使用 Arcium MPC 与 Groth16 ZK 证明实现机密交易。完整文档见 https://sdk.umbraprivacy.com/。
主要能力:语义流程为 register(每钱包一次,幂等,派生主种子)→ deposit(ATA→ETA,MPC)/ withdraw(ETA→ATA)/ convert(MXE→Shared)/ create UTXO({ATA,ETA}×{self,receiver}-claimable 四种变体)→ scan(索引器游标,不可信,需验证每个 commitment 与证明)→ claim(self→ETA、self→ATA、receiver→ETA 三种)→ monitor + retry。客户端通过 getUmbraClient 配置 signer、network(mainnet/devnet/localnet)、rpcUrl、rpcSubscriptionsUrl、indexerApiEndpoint、relayerApiEndpoint。支持多种 IUmbraSigner 工厂。ZK 证明为独立包,8 个按电路工厂函数,需放入 Web Worker(comlink);浏览器 2–8 秒,Node 1–3 秒。
必要用法与限制:UTXO 创建禁止并发(同 client 会读到相同 generationIndex 并静默碰撞),须按 (signer, network) 串行。创建前预检最小 SOL(租金、MPC 输入缓冲租金、交易费、Arcium 计算租金)。Relayer 回调可能丢失,应按 UTXO id 重试并轮询至终态且验证链上 nullifier;HTTP 409 DUPLICATE_OFFSET 表示上游已预留,需等待并重新核对链上。optionalData(32 字节)必须加密或哈希,绝不能明文。主种子签名消息必须使用 UMBRA_MESSAGE_TO_SIGN 原样,不能改动。导入仅限 @umbra-privacy/sdk 及其 /types、/constants、/errors 与 web-zk-prover。费用除数 BPS_DIVISOR = 16_384n。仅支持 Solana,且仅支持特定 mint(如 USDC、USDT、wSOL、UMBRA),不支持从 EVM 桥入。与 Zerion CLI 集成时可用 zerion wallet/sign/swap/analyze 等配合,但限制为 Solana 侧。其他细节以官网为准。